如何重新加载TreeStore?

sha*_*thi 5 extjs sencha-touch

我有treestore的嵌套列表.在第一次加载时,商店被完美加载并且根据商店显示列表.当我单击刷新按钮时,我的树库应该重新加载新数据(与第一次具有相同的数据模型),并且嵌套列表也需要重新加载新的数据集.

下面是我的树店定义

rightPaneStoreData = getFolderListData();

rightPaneStore =new Ext.data.TreeStore({

   autoLoad:false,

   model: 'FIMT.models.rightPaneModel',

   root: rightPaneStoreData,
   proxy: {

   type: 'memory',

   reader: {

       type: 'tree',
       root: 'items'
       }

   },
   listeners: {
       datachanged: function(records){
           alert("datachanged");
           }
   }

   });

rightPaneStore.load();
Run Code Online (Sandbox Code Playgroud)

在Ext.data.JsonStore中,我使用store.loaddata()方法完成了相同的操作.但我无法找到TreeStore的loaddata()方法.

请帮助我.

Ari*_*tee 9

这对我有用.我正在使用MVC,这个代码在我的控制器中调用.

treeStore.getRootNode().removeAll();
treeStore.load();
Run Code Online (Sandbox Code Playgroud)


Gra*_*rck 0

没有TreePanel像 的商店JsonStore。它会自动显示所有节点,并在需要时重新加载。

如果您的 rootNode ( rightPaneStoreData) 是一个AsyncTreeNode(通过 AJAX 加载),您可以使用:

rightPaneStoreData.reload()
(因为rightPaneStoreData是你的根节点)。

或者(更通用):(
tree.root.reload();
其中 tree 是对您的树的引用)

如果它不是ASyncTreeNode,则您必须手动执行此操作。再次调用您的getFolderListData()函数,并将新的根分配给树。( tree.setRootNode())