我有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();
在Ext.data.JsonStore中,我使用store.loaddata()方法完成了相同的操作。但我无法找到TreeStore的loaddata()方法。
请帮帮我。
答案 0 :(得分:9)
这对我有用。我正在使用MVC,这个代码在我的控制器中调用。
treeStore.getRootNode().removeAll();
treeStore.load();
答案 1 :(得分:1)
if (isset($_POST['submitCouponCode'])) {
$coupon = $_POST['couponCode'];
if ($coupon == '10offbook') {
header('Location: books.php');
exit;
} else if ($coupon == '10offmagazine') {
header('Location: magazine.php');
exit;
}
}
答案 2 :(得分:0)
TreePanel
没有像JsonStore
这样的商店。它会自动显示所有节点,并在需要时重新加载。
如果您的rootNode(rightPaneStoreData
)是AsyncTreeNode
(通过AJAX加载),您可以使用:
rightPaneStoreData.reload()
(因为rightPaneStoreData
是您的根节点)。
或者(更通用):
tree.root.reload();
(其中树是对树的引用)
如果不是ASyncTreeNode
,则必须手动执行。
再次调用getFolderListData()
函数,并将新根分配给树。 (tree.setRootNode()
)
答案 3 :(得分:0)
您可以使用内存代理重新加载树。请参阅How to update the Nested List/Tree Store in Sencha Touch?
中的答案答案 4 :(得分:0)
treeStore.getRootNode().removeAll();
treeStore.setRootNode({
id: rootNodeId,
text: 'root'
// other configs in root
});
// if you had non-standard children loads, then you would need to call:
treeStore.getProxy().load();
// if you had non-standard children loads, and you had params in your load, then you would need to call:
treeStore.getProxy().load({
params: {
node: rootNodeId
}
});