Pregunta

No estoy muy familiarizado con ExtJS, pero estoy trabajando en un proyecto que lo utilice.

Estamos haciendo uso de un TreePanel con un TreeLoader que carga todos los datos de los nodos del servidor en una sola llamada. Tenemos un evento en el que necesito para acceder a los atributos de cada nodo en el árbol. La forma en que estoy haciendo esto es utilizando el método de la getNodeById TreePanel. El problema es que el panel de árbol de nodos de carga parece perezosamente y no será capaz de recuperar un nodo con getNodeById a menos que el nodo ya se ha cargado.

¿Hay alguna manera de forzar a todos los nodos a ser cargadas? Lo más cerca que he llegado es mediante el uso del atributo preloadChildren en el TreeLoader, pero esto todavía sólo cargas cuando se carga el nodo principal que contiene los niños.

¿Fue útil?

Solución

Si usted quiere ser capaz de acceder a todos los nodos, se debe cargar la estructura de árbol completa en la primera llamada.

La respuesta JSON en la primera llamada debe incluir todos los nodos del árbol. Por ejemplo:

[{
    id: 1,
    text: 'A leaf Node',
    leaf: true
},{
    id: 2,
    text: 'A folder Node',
    children: [{
        id: 3,
        text: 'A child Node',
        leaf: true
    }]

}]

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