Nodos padres de un treeview

21/11/2006 - 15:11 por Juan Diego Bueno Prieto | Informe spam
Hola gente:

Tengo un treeview con tres niveles que relleno dinámicamente tomando datos
de unas tablas relacionadas. Con el elemento de tercer nivel que selecciono
de este treeview relleno tres labels con cada uno de los elementos de cada
nivel. El treeview permanece oculto cuando se ha seleccionado el elemento.

Pero ahora me encuentro en la situación contraria, es decir, relleno el
label de tercer nivel con un texto tomado directamente de la tabla del
tercer nivel, pero me gustaría obtener los dos elementos padre de este sin
tener que consultar las otras dos tablas en la BD.

He probado con el método find de la colección nodes del treeview, pero
obviamente solo me busca en el primer nivel. Para hacer referencia a
elementos del tercer nivel debo hacer algo asi como
treeview1.nodes[i].nodes[j].nodes[elementodetercernivel].

En resumen, quiero obtener los dos nodos padre del árbol comenzando desde
abajo (el tercer nivel). Eso es fácil en un nodo seleccionado
(selectednode), pero yo quiero hacerlo dandole el texto del nodo. No se si
me explico... Si no, siempre me quedaría obtener directamente de la tabla
los dos elementos superiores, pero quería evitar esto, ya que no veo
necesario hacer más consultas si tengo los datos ya cargados.

Gracias
 

Leer las respuestas

#1 [Juanjo]
21/11/2006 - 16:24 | Informe spam
Hola:

Los nodos tienen una propiedad parent que te devuelve el nodo padre de
un nodo dado,
asi que si puedes hacer algo asi como:

TreeNode nodo= this.tutreeview.SelectedNode;
TreeNode padre= nodo.parent;
TreeNode abuelo=nodo.parent.parent;
etc...

Con esto consultarias los nodos "padres" de un nodo seleccionado de un
TreeView.

Espero te sirva

"Juan Diego Bueno Prieto" escribió en el mensaje
news:
Hola gente:

Tengo un treeview con tres niveles que relleno dinámicamente tomando datos
de unas tablas relacionadas. Con el elemento de tercer nivel que
selecciono de este treeview relleno tres labels con cada uno de los
elementos de cada nivel. El treeview permanece oculto cuando se ha
seleccionado el elemento.

Pero ahora me encuentro en la situación contraria, es decir, relleno el
label de tercer nivel con un texto tomado directamente de la tabla del
tercer nivel, pero me gustaría obtener los dos elementos padre de este sin
tener que consultar las otras dos tablas en la BD.

He probado con el método find de la colección nodes del treeview, pero
obviamente solo me busca en el primer nivel. Para hacer referencia a
elementos del tercer nivel debo hacer algo asi como
treeview1.nodes[i].nodes[j].nodes[elementodetercernivel].

En resumen, quiero obtener los dos nodos padre del árbol comenzando desde
abajo (el tercer nivel). Eso es fácil en un nodo seleccionado
(selectednode), pero yo quiero hacerlo dandole el texto del nodo. No se si
me explico... Si no, siempre me quedaría obtener directamente de la tabla
los dos elementos superiores, pero quería evitar esto, ya que no veo
necesario hacer más consultas si tengo los datos ya cargados.

Gracias



Preguntas similares