Eliminar hijos de un nodo padre en treeview
Buenas a todos,
Espero puedan ayudarme y gracias por su tiempo. Mi problema es que lleno un treeview con datos extraídos de una base de datos SQL. Esto lo hago en el evento OnExpanding, hasta ahí todo bien. El problema esta que al contraer y volver a expandir un nodo los datos se vuelven a agregar y así sucesivamente todas las veces que contraiga y expanda ese nodo o cualquier otro que ya haya expandido una vez. Muchas gracias, un saludo. |
Cita:
|
Lo que pretendo hacer es que cada ves que se expanda el nodo es eliminar los hijos y volverlos a cargar.
Cita:
Un saludo. |
Cita:
|
Cita:
|
Cita:
Gracias. |
Podrías borrar todos los hijos de ese nodo, antes de volver añadir los datos (recorres los hijos de ese nodo-padre y los borras, si tienen objetos asociados al data del nodo, los liberas antes), pero mucho mejor es que una vez que has leído los datos de ese nodo y rellenado los hijos marques un flag para saber que ya están leídos, puedes utilizar alguna propiedad del nodo que no te sirva para otras cosas (por ejemplo ImageIndex, o SelectedImageIndex) y antes de leer los datos en el OnExpanding ves como está la propiedad, si están por leer los añadas y si están leídos no haces nada.
|
Cita:
te recomiendo lo siguiente, crea un procedure que sirva para llenar el tree por completo y no llenarlo segun se expanda por el usuario. |
Cita:
// Saludos |
Cita:
|
En muchas ocasiones lo que creemos que es un marrón por resolver la solución es la más simple posible.
Gracias Roman por la idea que al final es la solución que he utilizado y la que creo es la más simple. solo hacer el apunte de restar -1 ya que sino cuenta el nodo y el conteo siempre es = 1
Con el ejemplo de Roma sería
Muchas gracias a todos por su apreciada ayuda. ^\||/^\||/^\||/ Un saludo |
|
Cita:
|
Cita:
Si de primera hora nos dice que solamente quiere leer esos datos y que no los lea más, entonces las respuestas hubiesen sido otras. Por ejemplo, la de Román. |
Cita:
Completamente de acuerdo. |
En realidad, yo no entendí el comentario de stackoverflow :(
// Saludos |
Cita:
|
Cita:
Yo tampoco lo entendí :D. Bueno me refería que creo que en stackoverflow uno marca la respuesta que cree más adecuada, y decía que en esta caso para mí sería la respuesta de Román. |
La franja horaria es GMT +2. Ahora son las 01:07:17. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi