在對樹節(jié)點進(jìn)行操作后往往需要進(jìn)行reload操作刷新一下樹,但是很多業(yè)務(wù)都需要在樹形刷新后默認(rèn)選中最后一次選中的節(jié)點。這樣就必須先保存前一次選中節(jié)點的信息,在reload之后再次通過節(jié)點的信息進(jìn)行expand逐層展開到這個節(jié)點上。
查詢了好久終于找到一個可行的方案,就是通過節(jié)點的path來記錄節(jié)點的位置信息,然后通過path從root節(jié)點開始逐層展開,直到最后一個節(jié)點。
完成的代碼如下:
首先是extjs3.x版本中的方法:
復(fù)制代碼 代碼如下:
//獲取選中的節(jié)點
var node = tree.getSelectionModel().getSelectedNode();
if(node == null) { //沒有選中 重載樹
tree.getRootNode().reload();
} else { //重載樹 并默認(rèn)選中上次選擇的節(jié)點
var path = node.getPath('id');
tree.getLoader().load(tree.getRootNode(),
function(treeNode) {
tree.expandPath(path, 'id', function(bSucess, oLastNode) {
tree.getSelectionModel().select(oLastNode);
});
}, this);
}
復(fù)制代碼 代碼如下:
idPath = selNode.getPath("id");
tree.getStore().load({
node: tree.getRootNode(),
callback: function () {
tree.expandPath(idPath, 'id');
}
});
新聞熱點
疑難解答
圖片精選