萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> ExtJS 刷新後如何默認選中刷新前最後一次選中的節點

ExtJS 刷新後如何默認選中刷新前最後一次選中的節點

 這篇文章主要介紹了ExtJS 刷新後如何默認選中刷新前最後一次選中的節點,需要的朋友可以參考下

在對樹節點進行操作後往往需要進行reload操作刷新一下樹,但是很多業務都需要在樹形刷新後默認選中最後一次選中的節點。這樣就必須先保存前一次選中節點的信息,在reload之後再次通過節點的信息進行expand逐層展開到這個節點上。    查詢了好久終於找到一個可行的方案,就是通過節點的path來記錄節點的位置信息,然後通過path從root節點開始逐層展開,直到最後一個節點。    完成的代碼如下:  首先是extjs3.x版本中的方法:  代碼如下: //獲取選中的節點  var node = tree.getSelectionModel().getSelectedNode();  if(node == null) { //沒有選中 重載樹  tree.getRootNode().reload();  } else { //重載樹 並默認選中上次選擇的節點  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的寫法如下   代碼如下: idPath = selNode.getPath("id");  tree.getStore().load({  node: tree.getRootNode(),  callback: function () {  tree.expandPath(idPath, 'id');  }  });    需要注意的是後台返回的樹的json數據時節點必須包含id屬性,原本我沒有這個屬性,但是我把getPath方法中的參數改成其他的一個屬性。事實證明這樣是達不到效果的,最後在json中添加了id屬性才成功的。 
copyright © 萬盛學電腦網 all rights reserved