fiddle中的测试用例正在使用autoLoad: true
,但是使用autoLoad: false
(第86行),TreePanel beforerender事件中第161行调用的load()函数不会加载数据...
对于(非树)面板,我总是将autoLoad
设置为false并在GridPanel的渲染上加载商店,它完美地运行。我是这样做的,以防止在开始时加载所有商店(并有时设置过滤器)
商店的beforeload
事件阻止了双重加载。
这个TreeStore我的错在哪里?我正在寻找一个没有任何结果的解决方案......
答案 0 :(得分:1)
在这里解释的Ext JS 4中存在类似的问题ExtJS 4. Hidden treepanel with autoload false。
我在你的小提琴中所做的是我刚刚添加了以下内容
autoLoad: false,
root:{
//expanded: true, // optional
children: []
}
到商店配置中的第91
行。一切都神奇地起作用。
答案 1 :(得分:0)
我想我已经解决了你的问题。
使用TreeStore的root属性。
/*
* Store
*/
Ext.define('Chronos.store.Clockings', {
extend : 'Ext.data.TreeStore',
requires: [
//'Chronos.store.Session'
],
model : 'Chronos.model.Presence',
autoLoad : false, //true, // false,
//autoSync : true, // DEBUG
sortOnLoad : false,
pageSize : 0,
remoteFilter: true,
root: {
id: 'id',
expanded: true
},
listeners: {
load: function(treestore, records, success) {
console.log(Date(), 'clockings loaded: ', success, treestore);
},
beforeload: function (treestore) {
if(treestore.isLoading()) return false;
}
}
});
希望这就是你要找的东西!