我在http://www.sencha.com/forum/showthread.php?198856-Ext.ux.TreeCombo中找到了家教
我尝试在http://jsfiddle.net/rq2ha/的Extjs4.1中制作一个treecombo
这是我的代码
Ext.onReady(function() {
Ext.create('Ext.ux.TreeCombo', {
margin:10,
width:120,
height: 10,
treeHeight: 10,
treeWidth: 240,
renderTo: 'treecombo3',
store: storeMenu,
selectChildren: false,
canSelectFolders: true
,itemTreeClick: function(view, record, item, index, e, eOpts, treeCombo)
{
var id = record.data.id;
// I want to do something here.
// But combo do nothing (not selected item or not finish) when i init itemTreeClick function
}
});
});
第一个问题:我想获取树的ID并执行某些操作,当我在组合上单击树的项目时。但是,当我单击(组合不执行任何操作)时,组合未完成(选中)。
第二个问题:如果我更改存储,则动态
var treestore = Ext.create('Ext.data.TreeStore', {
proxy: {
type: 'ajax',
url: 'example.php',
reader: {
type: 'json'
}
},
autoload: true
});
我会得到错误
我的json
[ { id : '1' , text : 'a', iconCls: 'cls1' ,children :[{ id : '2' , text : 'b', iconCls: 'cls2' ,children :[{ id : '9' , text : 'a', iconCls: 'cls' ,children :[]},{ id : '14' , text : 'a', iconCls: 'c' ,children :[{ id : '33' , text : 'b', iconCls: 'cls' ,children :[{ id : '35' , text : 'a', iconCls: 'cls' ,children :[{ id : '36' , text : 'a', iconCls: 'cls' ,children :[]}]}]}]},{ id : '16' , text : 'd', iconCls: 'cls' ,leaf:true}]},...
我该如何解决,谢谢
最佳答案
为了解决第二个问题,在创建树存储时需要指定根节点。
var treestore = Ext.create('Ext.data.TreeStore', {
root: {
text: 'Root',
id: '0'
},
proxy: {
type: 'ajax',
url: 'example.php',
reader: {
type: 'json'
}
},
autoload: true
});
另外,我应该提到在jsfiddle示例中用于树存储的变量名称是storeMenu而不是treestore。因此,如果要用ajax版本替换静态树存储,请确保使用正确的变量名。