none
Contar los item seleccionados RRS feed

  • Pregunta

  • Hola a todos. bueno tengo el siguiente problema. tengo un treeView en mi pagina web, en la cual listo los archivos y carpetas (ademas habilite la propiedad de que todos los archivos tengan un checkBox de seleccion) que el usuario tiene en una carpeta raiz dentro del servidor. ahora, necesito saber cuantos archivos ha seleccionado ya que el usuario los puede descargar....osea, si el usuario selecciono dos archivos, se descargan esos dos... lo de descargar esta todo ok... lo que necesito saber es como hacer para detectar cuantos items se han seleccionado con los checkBox... aca tengo un codigo que lo hice para un listBoxCheck y quiero adaptarlo para un treeView...

    int count = (from item in cblMisDocumentos.Items.Cast<ListItem>()
                             where item.Selected
                             select item).Count();
    
    
                var list = from item in cblMisDocumentos.Items.Cast<ListItem>()
                           where item.Selected
                           select item.Value;

    El primero me sirve para saber cuantos elementos se han seleccionado. el segundo, que elementos son los seleccionados...

    este es mi codigo que pude adaptar para el treeView

     int count = (from item in tvArchivosCarpetas.Nodes.Cast<TreeView>()
                             where item.SelectedNode.Selected
                             select item).Count();
    
    
                var list = from item in tvArchivosCarpetas.Nodes.Cast<TreeView>()
                           where item.SelectedNode.Selected
                           select item.SelectedNode.Value;

    Ahora, cuando sigo el codigo, tanto "count" como "list" estan vacios....que puede ser? como puedo saber que elementos se han seleccionado en un treeView? 

    espero que me puedan ayudar ya que esto me tiene muy complicado....saludos  a todos y muchisimas gracias por todo.



    jueves, 28 de mayo de 2015 2:04

Respuestas

  • Hola Enrique Aleman para obtener la cantidad de items que están seleccionados en el treeview y saber los items que estan seleccionado es de la siguiente manera:

    protected void Button1_Click(object sender, EventArgs e)
            {
                string ItemsSeleccionados = string.Empty;
    
                foreach (TreeNode nodo in TreeView1.CheckedNodes)
                {
                    ItemsSeleccionados += nodo.Text + ",";
                }
                ItemsSeleccionados = ItemsSeleccionados.Remove(ItemsSeleccionados.Length - 1, 1);
                int cantidad = TreeView1.CheckedNodes.Count;
            }
    Espero haberte ayudado.

    jueves, 28 de mayo de 2015 4:17
  • hola

    >>tengo un treeView en mi pagina web, en la cual listo los archivos y carpetas

    cual archivos y carpeta ? imagino representas la estructura de la carpeta del sitio web. no? digo porque no puedes mostrar la estructura de cualquier carpeta

    >>El primero me sirve para saber cuantos elementos se han seleccionado. el segundo, que elementos son los seleccionados

    porque realizas dos querias si podrias definir solo uno

    var list= from item in tvArchivosCarpetas.Nodes.Cast<TreeView>() where item.SelectedNode.Selected select item;

    int count = list.Count();

    var listValues = list.Select(x=> x.SelectedNode.Value);

    o sea obtienes la lista y de esta obtienes lo que necesitas, peor no necesitas dos linq

    >>cuando sigo el codigo, tanto "count" como "list" estan vacios....que puede ser? como puedo saber que elementos se han seleccionado en un treeView?

    que pasa si usas

    var listNode = from niode in tvArchivosCarpetas.Nodes.Cast<TreeView>() where node.Checked select node;

    TreeNode.Checked Property

    igualmente ojo porque los nodos del treeview tienen niveles, si solo usas Nodes sera lo de un solo nivel

    how to get list of all tree nodes (in all levels) in TreeView Controls

    analiza la respuesta de Anton Purin para obtener por medio de linq todos los nodos de todos los niveles y sobre esto si podrias analizar cuales estan marcados

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Enrique Aleman jueves, 28 de mayo de 2015 15:50
    jueves, 28 de mayo de 2015 11:43

Todas las respuestas

  • Hola Enrique Aleman para obtener la cantidad de items que están seleccionados en el treeview y saber los items que estan seleccionado es de la siguiente manera:

    protected void Button1_Click(object sender, EventArgs e)
            {
                string ItemsSeleccionados = string.Empty;
    
                foreach (TreeNode nodo in TreeView1.CheckedNodes)
                {
                    ItemsSeleccionados += nodo.Text + ",";
                }
                ItemsSeleccionados = ItemsSeleccionados.Remove(ItemsSeleccionados.Length - 1, 1);
                int cantidad = TreeView1.CheckedNodes.Count;
            }
    Espero haberte ayudado.

    jueves, 28 de mayo de 2015 4:17
  • hola

    >>tengo un treeView en mi pagina web, en la cual listo los archivos y carpetas

    cual archivos y carpeta ? imagino representas la estructura de la carpeta del sitio web. no? digo porque no puedes mostrar la estructura de cualquier carpeta

    >>El primero me sirve para saber cuantos elementos se han seleccionado. el segundo, que elementos son los seleccionados

    porque realizas dos querias si podrias definir solo uno

    var list= from item in tvArchivosCarpetas.Nodes.Cast<TreeView>() where item.SelectedNode.Selected select item;

    int count = list.Count();

    var listValues = list.Select(x=> x.SelectedNode.Value);

    o sea obtienes la lista y de esta obtienes lo que necesitas, peor no necesitas dos linq

    >>cuando sigo el codigo, tanto "count" como "list" estan vacios....que puede ser? como puedo saber que elementos se han seleccionado en un treeView?

    que pasa si usas

    var listNode = from niode in tvArchivosCarpetas.Nodes.Cast<TreeView>() where node.Checked select node;

    TreeNode.Checked Property

    igualmente ojo porque los nodos del treeview tienen niveles, si solo usas Nodes sera lo de un solo nivel

    how to get list of all tree nodes (in all levels) in TreeView Controls

    analiza la respuesta de Anton Purin para obtener por medio de linq todos los nodos de todos los niveles y sobre esto si podrias analizar cuales estan marcados

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Enrique Aleman jueves, 28 de mayo de 2015 15:50
    jueves, 28 de mayo de 2015 11:43
  • Muchas gracias por sus respuestas señores...fueron de gran ayuda..saludos 
    jueves, 28 de mayo de 2015 20:21