我有和使用NestedList和TreeStore的应用程序。 TreeStore使用AJAX类型代理和XML阅读器。现在,我已经实现了“设置”页面,您可以在其中更改用作数据源的URL。应用程序需要在更改后“重新加载”。因此,我更改了代理网址:
App.tree_store.proxy.url = new_url;
然后我想加载一个新数据:
App.tree_store.load();
当我将NestedList切换到root卡时,它将包含来自先前配置和当前配置的混合数据:
App.views.hdTreeView.setActiveItem(0);
问题:在加载全新数据(相同的数据模型)之前,我应该如何“清除/重置”NestedList?我是否还必须清除TreeStore / SubStores和Proxy,如果是,如何?也许使用destroy()方法并重新创建新组件?
如果我使用removeAll()删除所有列表而不是重新加载商店,则不会创建新列表。
谢谢!
答案 0 :(得分:1)
showDetail: function(list, index , element , record) {
//Take your store
var store = Ext.getStore('yourstore');
//Apply the params
Ext.apply(store.getProxy()._extraParams, {
id : record.data.id
});
//Reload your store
store.load();
}
将此代码放在控制器
只需更改extraParams
即可获取新数据。
不要输入exterparam
。
所以你的cab只使用一个url,但chnage只是param for fetch data。
答案 1 :(得分:0)
首先使用store.setProxy()
并传递新的代理对象,然后使用:
nestedListObject.bindStore(store.load());
其中nestedListObject
是您的嵌套列表。