트리 노드에서 작동 한 후에는 종종 트리를 새로 고침하기 위해 재 장전 작업을 수행해야하지만, 많은 비즈니스는 트리가 새로 고침 된 후 기본적으로 마지막으로 선택된 노드를 선택해야합니다. 이런 식으로 먼저 선택한 노드의 정보를 이전 시간에 저장 한 다음 다시로드 후 노드의 정보를 통해 레이어로 레이어를 확장해야합니다.
오랜 시간을 검색 한 후 마침내 노드의 경로를 통해 노드의 위치 정보를 녹음 한 다음 루트 노드에서 마지막 노드까지 레이어에 의해 레이어를 확장하는 실현 가능한 솔루션을 찾았습니다.
완성 된 코드는 다음과 같습니다.
먼저, extjs3.x 버전의 메소드 :
코드 사본은 다음과 같습니다.
// 선택한 노드를 가져옵니다
var node = tree.getSelectionModel (). getSelectedNode ();
if (node == null) {// 과부하 트리가 선택되지 않았습니다.
tree.getRootNode (). Reload ();
} else {// 트리를 다시로드하고 기본적으로 마지막으로 선택한 노드를 선택합니다.
var path = node.getPath ( 'id');
tree.getLoader (). load (tree.getRootNode (),
함수 (Treenode) {
tree.expandpath (path, 'id', function (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 속성이 포함되어 있어야하지만이 속성이 없었지만 GetPath 메소드의 매개 변수를 다른 속성으로 변경했습니다. 이것이 효과를 달성 할 수 없으며 마지막으로 ID 속성이 JSON에 추가되었습니다.