我在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版本替换静态树存储,请确保使用正确的变量名。

09-27 19:36