您好我使用的是Ext版本:4.2.0.663
我正在尝试重新加载我的treepanel中的数据,但我有两个问题:
*第一个问题是我无法禁用autoLoad
---- 1st已修复 - 您需要将 store.root.expanded 设置为 false ----
*第二个问题是,当我试图使“treeview.store.load();”时,它会重新加载数据,但是孩子们丢失了,当我尝试点击折叠时父母提出这个错误:
未捕获的TypeError:无法调用null的方法'insertSibling'
ext-all-dev.js:158815
这就是我创建treepanel的方式:
{
xtype:'treepanel',
region:'west',
width:200,
dockedItems:[
{
xtype: 'toolbar',
dock: 'top',
id: 'msgToolbar',
style: 'font-weight:bold',
items: [
{
xtype: 'button',
text:'Add new tab',
iconCls:'button-add'
}
]
}
],
store: Ext.create('Ext.data.TreeStore', {
autoLoad: false,
proxy: {
type: 'ajax',
url: 'path to controller',
extraParams : {
launch:'functionName'
}
},
root: {
text: 'Tabs',
expanded: true
},
folderSort: true,
sorters: [{
property: 'text',
direction: 'ASC'
}]
})
}
当我重新加载页面时,treepanel会自动加载数据(甚至autoLoad:false),一切正常,但是当我尝试生成treepanel.store()。load()时,会出现第二个错误。
在这两种情况下,从php返回的数据完全相同(也是标题 - 我的意思是2个相同的请求)
答案 0 :(得分:2)
在重新加载子节点之前,它需要在根节点上进行折叠,所以目前我正在做这个并且一切正常:
treepanel.collapseAll(function(){
treepanel.store.proxy.extraParams.record_id = record.get('record_id');
treepanel.store.load({
callback: function(records, operation, success) {
treepanel.expandAll();
}
});
});
如果您不想看到“展开/折叠”动画,可以在树状面板上设置 enableAnimations:false 。