После работы на узле дерева вам часто нужно выполнить операцию перезагрузки, чтобы обновить дерево, но многим предприятиям необходимо выбрать последний выбранный узел по умолчанию после обновления дерева. Таким образом, вы должны сначала сохранить информацию выбранного узла в предыдущий раз, а затем расширить его слой по слою через информацию узела после перезагрузки.
После долгого поиска я, наконец, нашел выполнимое решение, которое состоит в том, чтобы записать информацию о местонахождении узла по пути узла, а затем расширил слой по слою из корневого узла через путь до последнего узла.
Готовый код заключается в следующем:
Во -первых, метод в версии extjs3.x:
Кода -копия выглядит следующим образом:
// Получите выбор узла
var node = tree.getSelectionModel (). getSelectedNode ();
if (node == null) {// дерево перегрузки не выбран
tree.getRootnode (). reload ();
} else {// перезагрузить дерево и выберите последний выбранный узел по умолчанию
var path = node.getPath ('id');
tree.getLoader ().
function (treeNode) {
Tree.expandpath (Path, 'id', функция (bsucess, olastnode) {
tree.getSelectionModel (). Select (OlastNode);
});
}, этот);
}
Разница между extjs3.0 и extjs4.2 заключается в следующем
Кода -копия выглядит следующим образом:
idpath = selnode.getPath ("id");
tree.getStore (). Load ({
Узел: Tree.getRootnode (),
обратный вызов: function () {
Tree.expandpath (idpath, 'id');
}
});
Следует отметить, что когда данные JSON дерева возвращались в фоновом режиме, узел должен содержать атрибут ID. Оказывается, это не может достичь эффекта, и, наконец, атрибут ID был добавлен в JSON.