Después de operar en el nodo del árbol, a menudo debe realizar una operación de recarga para actualizar el árbol, pero muchas empresas deben seleccionar el último nodo seleccionado de forma predeterminada después de actualizar el árbol. De esta manera, primero debe guardar la información del nodo seleccionado la vez anterior, y luego expandirla capa por capa a través de la información del nodo después de la recarga.
Después de buscar mucho tiempo, finalmente encontré una solución factible, que es registrar la información de ubicación del nodo a través de la ruta del nodo, y luego expandir la capa por capa desde el nodo raíz a través de la ruta hasta el último nodo.
El código terminado es el siguiente:
Primero, el método en la versión extjs3.x:
La copia del código es la siguiente:
// Obtener nodo seleccionado
var nodo = tree.getSelectionModel (). getSelectedNode ();
if (node == null) {// El árbol de sobrecarga no está seleccionado
Tree.getRootNode (). Reload ();
} else {// Recargar el árbol y seleccionar el último nodo seleccionado de forma predeterminada
var ruta = node.getPath ('id');
Tree.getLoader (). Load (tree.getrootnode (),
función (treeNode) {
Tree.EXPANDPATH (Ruta, 'id', function (BSucess, Olastnode) {
Tree.getSelectionModel (). SELECT (OLASTNODE);
});
}, este);
}
La diferencia entre extjs3.0 y extjs4.2 es la siguiente
La copia del código es la siguiente:
idpath = selnode.getPath ("id");
árbol.getstore (). Load ({
nodo: tree.getRootNode (),
devolución de llamada: function () {
árbol.expandpath (idpath, 'id');
}
});
Cabe señalar que cuando los datos JSON del árbol regresaron en segundo plano, el nodo debe contener el atributo de identificación, no tenía este atributo, pero cambié los parámetros en el método GetPath a otro atributo. Resulta que esto no puede lograr el efecto, y finalmente, el atributo de identificación se agregó a JSON.