Pregunta

Estoy en una situación en la que necesito mostrar un árbol.Sin embargo, algunos de los nodos tienen 35000 nodos secundarios (directo niño!).Esto, por supuesto, es la forma lenta en términos de usabilidad.

Prefiero ver que el árbol de cargas sólo aquellos nodos que están visibles en la ventana del navegador.

Este tipo de árboles que existen para WinForms y C++, ¿ alguno de ustedes sabe si es un árbol de existir para ASP.NET?

Actualmente estamos utilizando el Telerik Treeview, que es un encantador de control, pero no soporta la situación descrita.

preguntas adicionales

A partir de una usabilidad punto de vista:¿cómo lidiar con este tipo de árboles.Visualización de 35000 nodos en un nivel es bueno, pero, ¿cómo encontrar algo en ese árbol?¿El uso de paginación en un árbol?o un cuadro de búsqueda?o tal vez añadir más niveles?

¿Fue útil?

Solución

Con tantos nodos, incluso si puede encontrar una forma eficaz de mostrarlos, es probable que sus usuarios no los usen mucho. ¡Imagínese tratando de desplazarse a través de 35,000 nodos solo para encontrar el nodo que le interesa! Lo mismo vale para la paginación. ¿Un usuario realmente va a la página 3500 páginas (suponiendo un tamaño de página de 10) para encontrar su objetivo? Probablemente no, y si lo hacen, probablemente no serán muy felices. :)

En cambio, con grandes conjuntos de datos como este, creo que generalmente es mejor proporcionar algún tipo de " Filter " UI Algo que le permite a su usuario & Quot; shape & Quot; los datos disponibles en una colección más manejable.

No estoy seguro de qué capacidad tiene para proporcionar filtrado (es decir, en qué campos podría filtrar), pero creo que esa es su mejor opción. Las opciones para la interfaz de usuario son:

  1. Algo como RadGrid para ASP.NET AJAX que puede proporcionar una interfaz de usuario de filtrado incorporada que permite a los usuarios encontrar rápidamente los valores que les interesan.
  2. Utilizando la API del lado del cliente de RadTreeView y el soporte para cargar nodos a pedido, puede crear un cuadro de texto que filtre los nodos en el árbol a medida que el usuario escribe. Simplemente manejaría el evento onkeyup de TextBox y luego enviaría una solicitud a un servicio web para tomar los nodos que cumplan con los criterios de filtro y reemplazar la colección de nodos de TreeView con el resultado. Eso hará que mucho sea más fácil para sus usuarios encontrar su nodo objetivo.

Claramente, también hay otros enfoques, pero espero que esto te dé algunas ideas.

Respuesta breve: Para grandes conjuntos de datos, usaría una combinación de filtrado en tiempo real y servicios web para presentar un conjunto de resultados más manejable para mis usuarios. Para la carga inicial, solo cargaría los primeros (digamos) 200 nodos para mantener el rendimiento alto.

¡Espero que esto ayude! -Todd

Otros consejos

Sé que hay algunos jQuery controles de árbol.No sabemos los nombres de la mano.El ASP.NET control de árbol definitivamente no apoyo esto, ya que no es AJAXifiable.Para la visualización de 35000 nodos problema, me gustaría que la página como esta.

node
|
-- Sub Node 1
|
-- ...
|
-- Sub Node n
|
-- more...

Al pasar el cursor sobre más o haga clic en él será más nodos.Si usted está mostrando 100 sub nodos, me gustaría carga de 200 y ocultar las otras 100.De esta manera, cuando usted coloca el cursor sobre más, parece intantaneous.Y cada vez que se desplaza a lo largo de más...el lado oculto de 100 de la carga.

Además, no es tan difícil crear un árbol personalizado controles de hoy en día con todos los uplevel navegadores, uso <ul> y <li> anidada para crear nodos y sub nodos y, a continuación, aplicar el estilo apropiado.El <li> puede tener enlaces en ellos si quieres hacer que el conjunto de clic de forma más fácil.

Mis dos centavos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top