Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/02/2011, 08:29
Avatar de Aquaventus
Aquaventus
 
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: Agregar Nodo a un treview

haber por ejemplo te guio... yo creo un metodo de llenado solo para un treeview especifico :

Código c#:
Ver original
  1. //MI METODO DE CARGA SOLO PARA 1 TREE
  2. public void Carga(int indicePadre, TreeNode nodePadre)
  3.         {
  4.             //Aqui obtengo todo el listado de lo que va a formar mi treeview
  5.             DataTable dtt = objmn.LISTADOMODULO();
  6.             //Creo una vista para el datatable
  7.             DataView dataViewHijos = new DataView(dtt);
  8.             //Obtengo del listado todos los hijos de aquella fila que en su
  9.             //columna del campo "ID_MODULOPE" tenga como indice de
  10.             //codigo el indicepadre que le pasamos como parametro al metodo
  11.             dataViewHijos.RowFilter = dtt.Columns["ID_MODULOPE"].ColumnName + " = " + indicePadre;
  12.            //Hago un recorriedo de los hijos para filtrados
  13.             foreach (DataRowView dataRowCurrent in dataViewHijos)
  14.             {
  15.                 //creo un nuevo nodo
  16.                 TreeNode nuevoNodo = new TreeNode();
  17.                 //Le paso el texto de la fila que esta en recorrido
  18.                 nuevoNodo.Text = dataRowCurrent["DESCRIPMODULO"].ToString();
  19.                 //si se mando null esto quiere decir que son los primeros nodos
  20.                 //principales
  21.                 if (nodePadre == null)
  22.                 {
  23.                    //agrego el nodo
  24.                     treeView2.Nodes.Add(nuevoNodo);
  25.                 }
  26.                 //sino es null quiere decir que voy a agregar un hijo al nodo principal
  27.                 else
  28.                 {
  29.                    //agrego el hijo
  30.                     nodePadre.Nodes.Add(nuevoNodo);
  31.                 }
  32.                 //Mando a cargar si contiene o no nuevo hijos el nodo actual
  33.                 Carga(Int32.Parse(dataRowCurrent["ID_MODULO"].ToString()), nuevoNodo);
  34.             }
  35.             //Expando el tree al final todos los recorridos
  36.             treeView2.ExpandAll();
  37.         }

Y en el load lo unico que hago es llamarlo, pasandole la cabeza del listado el codigo apartir del cual yo voy a listar :

Código c#:
Ver original
  1. //el codigo 0 y null para comenzar a llenar el nodo principal
  2. Carga(0, null);

Por ejemplo la tabla que liste fue :

Código script:
Ver original
  1. Create table MODULO(
  2. ID_MODULO INT,
  3. DESCRIPMODULO NVARCHAR(100),
  4. ID_MODULOPE INT,
  5. PRIMARY KEY(ID_MODULO))

CON DATOS DE PRUEBA COMO... :

(1,'MARKET',0)
(2,'SNACKS',1)
(3,'BEBIDAS',1)
(4,'snack1','2')
(5,'snack2','2')
(6,'snack3','2')
(7,'snack1.1','4')
(8,'pepsi','3')
(9,'coca cola','3')

que vendriar a listar de esta manera :

*MARKET
|----SNACKS
|---------snack1
|---------snack1.1
|---------snack2
|---------snack3
|----BEBIDAS
|---------pepsi
|---------coca cola

Espero te sea de utilidad Noa. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net