我正在为extJS应用程序使用一个treepanel。
这是我的代码:
{
xtype: 'treepanel',
useArrows: true,
autoScroll: false,
animate: true,
animateShadow: true,
enableDD: false,
id: 'myTreePanel',
rootVisible: false,
store: Ext.create('Ext.data.TreeStore', {
root: {
expanded: true,
children: [],
}
}),
}
现在,在单击某个按钮的一个ajax调用之后,我得到了响应。我正在粘贴得到的响应的样本值。现在在功能中,这就是我去商店的方式。
myTreeData = [{
children: [],
text: 'text1'
},
{
children: [],
text: 'text2'
},
{
children: [{
children: null,
text: 'text31'
}, {
children: null,
text: 'text32'
}],
text: 'text3'
},
{
children: [],
text: 'text4'
},
{
children: [],
text: 'text5'
}
]
myFunction: function(me.response) {
var myTreeData = response.myTreeData;
for (var i = 0; i < myTreeData.length; i++) {
myTreeData[i].expand = true;
myTreeData[i].text = myTreeData[i].text;
var myTreeDataChildren = myTreeData[i].children;
if (myTreeDataChildren.length >= 1) {
for (var j = 0; j < myTreeDataChildren.length; j++) {
if (myTreeDataChildren[j].textValue == null) {
myTreeDataChildren[j].text = myTreeDataChildren[j].Display
} else {
myTreeDataChildren[j].text = myTreeDataChildren[j].textValue
}
myTreeDataChildren[j].leaf = true;
}
}
}
var myTreePanel = Ext.getCmp('myTreePanel');
var myTreePanelStore = myTreePanel.getStore();
myTreePanelStore.loadData(myTreeData);
}
这里的商店设置完美,但是单击该节点后,我便可以打开子元素,但是当我再次单击该子元素时,它应该关闭/折叠,但这没有发生。
任何人都可以建议我以更好的方式加载商店,并且关闭和折叠应能按预期工作。