Extjs4.0.7 treepanel中定義自定義字段

自定義treePanel 字段,在保留原有的基礎上加入自己的字段,便於根據菜單選項,對應響應的處理,網上只說原理沒有實例,經過吐血研究終於搞定。注意下版本,版本不同也會有少許不同的(本文版本extjs4.0.7)

 

原理:要自定義tree model 結構,在樹數據中帶有自定義的字段值時需要在model中指定

 

定義部分:

    Ext.regModel('menuInfo', {

        fields: [
                    { name: 'id', type: 'string', defaultValue: null },
                    { name: 'text', type: 'string', defaultValue: null },
                    { name: 'parentId', type: 'string', defaultValue: null },
                    { name: 'index', type: 'int', defaultValue: null },
                    { name: 'depth', type: 'int', defaultValue: 0 },
                    { name: 'expanded', type: 'bool', defaultValue: false },
                    { name: 'expandable', type: 'bool', defaultValue: true },
                    { name: 'checked', type: 'auto', defaultValue: null },
                    { name: 'leaf', type: 'bool', defaultValue: false },
                    { name: 'cls', type: 'string', defaultValue: null },
                    { name: 'iconCls', type: 'string', defaultValue: null },
                    { name: 'icon', type: 'string', defaultValue: null },
                    { name: 'root', type: 'boolean', defaultValue: false },
                    { name: 'isLast', type: 'boolean', defaultValue: false },
                    { name: 'isFirst', type: 'boolean', defaultValue: false },
                    { name: 'allowDrop', type: 'boolean', defaultValue: true },
                    { name: 'allowDrag', type: 'boolean', defaultValue: true },
                    { name: 'loaded', type: 'boolean', defaultValue: false },
                    { name: 'loading', type: 'boolean', defaultValue: false },
                    { name: 'href', type: 'string', defaultValue: null },
                    { name: 'hrefTarget', type: 'string', defaultValue: null },
                    { name: 'qtip', type: 'string', defaultValue: null },
                    { name: 'qtitle', type: 'string', defaultValue: null },
                    { name: 'formid', type: 'string', defaultValue: null },                  //自定義
                    { name: 'formcode', type: 'string', defaultValue: null },            //自定義
                    { name: 'formname', type: 'string', defaultValue: null },          //自定義
                    { name: 'webpath', type: 'string', defaultValue: null },             //自定義
                    { name: 'exefile', type: 'string', defaultValue: null },                 //自定義
                    { name: 'tcode', type: 'string', defaultValue: null }                   //自定義
            ]
    });

    var treeStore1 = Ext.create('Ext.data.TreeStore', {
        model: 'menuInfo',                                                       //必須的
        autoLoad : true,
        proxy: {
            type: 'ajax',
            url: 'ashx/GetOATreeJson.ashx'    
        },
        /////nodeParam : "FormID",
        root: {
            nodeType: 'async',
            text: 'Erp管理菜單',
            id: '00',
            expanded: true
        }
    });

調用:

       。。。。。

        listeners: {
            'itemclick': function (view, record) {
                    var leaf = record.get('leaf');
                    if (leaf) {
                        var id = record.get('id');
                        var text = record.get('text');
                        var tabPanel = Ext.getCmp('MAINPANEL');
                        addTab2(record.get('text'), record.get('webpath'));   //看看可以獲得自定義內容了。。。。
                    }
                    else {
                        //alert('not leaf!');
                        var expand = record.get('expanded')
                        if (expand) {
                            view.collapse(record);
                        }
                        else {
                            view.expand(record);
                    }
                }
            }
        }  //listeners -------funcation end----------
   。。。。    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章