Foros del Web » Programación para mayores de 30 ;) » .NET »

Al seleccionar nodo cargar nodos hijos debajo de este en un treeview(winform)

Estas en el tema de Al seleccionar nodo cargar nodos hijos debajo de este en un treeview(winform) en el foro de .NET en Foros del Web. Hola a todos!!! Tengo una aplicación en la que uso un treeview para cargar datos desde una base de datos access.--- Tengo una función recursiva ...
  #1 (permalink)  
Antiguo 22/03/2007, 15:00
 
Fecha de Ingreso: octubre-2005
Mensajes: 180
Antigüedad: 18 años, 7 meses
Puntos: 0
Al seleccionar nodo cargar nodos hijos debajo de este en un treeview(winform)

Hola a todos!!!

Tengo una aplicación en la que uso un treeview para cargar datos desde una base de datos access.--- Tengo una función recursiva que me carga todos los nodos al cargar el form por primera vez; pero se tarda algo en llenar debido a que son como 10,000 nodos que carga. Entonces se me ha ocurrido la idea de que cuando cargue la forma por primera vez; que nada mas me cargue dos niveles del treeview; de esta manera me carga de volada; ahora lo que intento para que se adicionen los otros nodos; es que cuando seleccione un nodo este me traiga una función que cargue los nodos hijos en el nodo padre seleccionado.----

Ahorita lo que hago es usando el metodo AfterSelect del treeview tomo la propiedad tag (treeleyes.SelectedNode.Tag ); para hacer el query y seleccionar los nodos hijos del nodo seleccionado; hasta aquí de maravilla.--

El problema viene cuando le digo que me cargue esos nodos en el nodo seleccionado.- Me los carga pero debajo del ultimo nodo adicionado al hacer la primera carga; es decir en el ultimo nodo que carga cuando se carga por primera vez la forma.---

No se si exista algun evento para poder cargar de manera adecuada esos nodos en el nodo padre seleccionado.----

Estoy usando vb.net 2005.----

Cualquier ayuda es bienvenida.--de antemano mil gracias...

Bitss---Miguel--in---
  #2 (permalink)  
Antiguo 22/03/2007, 16:32
 
Fecha de Ingreso: octubre-2005
Mensajes: 180
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Al seleccionar nodo cargar nodos hijos debajo de este en un treeview(winform)

Ya pude resolver que me cargue los nodos hijos debajo del nodo seleccionado!!!

En el método afterselect le paso a la función de adicionar el parámetro id del nodo seleccionado; y simplemente le indico lo siguiente:

Código:
treeview.SelectedNode.Nodes.Add(oNode)
En donde onode es un elemento treenode que cacha los valores id y texto que me devuelve el query al gestionar los hijos del nodo seleccionado; lo explicado en el code es lo siguiente:

Código:
oNode = New TreeNode
            oNode.Text = dr("nombre")
            oNode.Tag &= dr("id")
Ahora tengo dos cuestiones que resolver:

2.- La primera es que como esto lo manejo en el metodo afterselect cada vez que selecciono el nodo. me vuelve cargar los nodos; es decir los vuelve a repetir; no se si haya alguna forma de decirle que no me cargue los mismo nodos hijos debajo del nodo padre seleccionado.

1.- La segunda es la de poner el signo + o - en los nodos al cargar la forma por primera vez; ya que me los pone sin simbolo +; y así no se si existen o no nodos secundarios despues de este hasta que le doy clik......

De antemano mil gracias.----

Bitss---Miguel--in---
  #3 (permalink)  
Antiguo 22/03/2007, 17:28
 
Fecha de Ingreso: octubre-2005
Mensajes: 180
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Al seleccionar nodo cargar nodos hijos debajo de este en un treeview(winform)

bueno ya resolvi el primer cuestionamiento con tan solo agregarle antes de que me adicionara los nodos hijos debajo del nodo padre seleccionado, el siguiente trozo de código:

Código:
treeview.SelectedNode.Nodes.Clear()
y para el segundo cuestionamiento estoy pensando en hacer busquedas sobre el for de adicionar, para que cuando el nodo adicionado tenga hijos en mi tabla de la bd; le dibuje el simbolo mas.---

De antemano mil gracias.---

Bitss--Miguel--in---
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:29.