欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ExtJS 刷新后如何默認(rèn)選中刷新前最后一次選中的節(jié)點(diǎn)

 更新時間:2014年04月03日 16:53:14   作者:  
這篇文章主要介紹了ExtJS 刷新后如何默認(rèn)選中刷新前最后一次選中的節(jié)點(diǎn),需要的朋友可以參考下
在對樹節(jié)點(diǎn)進(jìn)行操作后往往需要進(jìn)行reload操作刷新一下樹,但是很多業(yè)務(wù)都需要在樹形刷新后默認(rèn)選中最后一次選中的節(jié)點(diǎn)。這樣就必須先保存前一次選中節(jié)點(diǎn)的信息,在reload之后再次通過節(jié)點(diǎn)的信息進(jìn)行expand逐層展開到這個節(jié)點(diǎn)上。

查詢了好久終于找到一個可行的方案,就是通過節(jié)點(diǎn)的path來記錄節(jié)點(diǎn)的位置信息,然后通過path從root節(jié)點(diǎn)開始逐層展開,直到最后一個節(jié)點(diǎn)。

完成的代碼如下:
首先是extjs3.x版本中的方法:
復(fù)制代碼 代碼如下:

//獲取選中的節(jié)點(diǎn)
var node = tree.getSelectionModel().getSelectedNode();
if(node == null) { //沒有選中 重載樹
tree.getRootNode().reload();
} else { //重載樹 并默認(rèn)選中上次選擇的節(jié)點(diǎn)
var path = node.getPath('id');
tree.getLoader().load(tree.getRootNode(),
function(treeNode) {
tree.expandPath(path, 'id', function(bSucess, oLastNode) {
tree.getSelectionModel().select(oLastNode);
});
}, this);
}

跟Extjs3.0不同Extjs4.2的寫法如下
復(fù)制代碼 代碼如下:

idPath = selNode.getPath("id");
tree.getStore().load({
node: tree.getRootNode(),
callback: function () {
tree.expandPath(idPath, 'id');
}
});

需要注意的是后臺返回的樹的json數(shù)據(jù)時節(jié)點(diǎn)必須包含id屬性,原本我沒有這個屬性,但是我把getPath方法中的參數(shù)改成其他的一個屬性。事實(shí)證明這樣是達(dá)不到效果的,最后在json中添加了id屬性才成功的。

相關(guān)文章

最新評論