Extjs combox 树组合框自定义

/** 
 * 韩飞 
 *  
 * @class TreeSelector 
 * @extends Ext.form.ComboBox 
 */ 
TreeSelector = Ext.extend(Ext.form.ComboBox, { 
    /** 
     * 回调函数,用于传递选择的id,text属性 
     *  
     * @type 
     */ 
    callback : Ext.emptyFn, 
    store : new Ext.data.SimpleStore({ 
                fields : [], 
                data : [[]] 
            }), 
    editable : false, 
    mode : 'local', 
    emptyText : "请选择部门", 
    allowBlank : false, 
    blankText : "必须输入!", 
    triggerAction : 'all', 
    maxHeight : 200, 
    anchor : '95%', 
    displayField : 'text', 
    valueField : 'id', 
    tpl : "<tpl for='.'><div style='height:200px'><div id='tree'></div></div></tpl>", 
    selectedClass : '', 
    onSelect : Ext.emptyFn, 
    /** 
     * 根的名字 
     *  
     * @type String 
     */ 
    rootText : '组织机构', 
    /** 
     * 树的请求地址 
     *  
     * @type String 
     */ 
    treeUrl : 'system/organization/loadOrganizationTrees.action', 
    tree : null, 
    initComponent : function() { 
 
        this.tree = new Ext.tree.TreePanel({ 
            height : 200, 
            scope : this, 
            autoScroll : true, 
            split : true, 
            root : new Ext.tree.AsyncTreeNode({ 
                        expanded : true, 
                        id:'o', 
                        text : this.rootText 
                    }), 
 
            loader : new Ext.tree.TreeLoader({ 
                        url : this.treeUrl 
 
                    }), 
            rootVisible : true 
                // , 
                /* 
                 * listeners : { scope : this, 'click' : function(node) {// 单击事件 
                 * if (node.id != null && node.id != '') { 
                 *  
                 * this.callback.call(this, node.id, node.text); 
                 *  
                 * this.collapse(); 
                 *  } } } 
                 */ 
            }); 
        var c = this; 
        /** 
         * 点击选中节点并回调传值 
         */ 
        this.tree.on('click', function(node) { 
                    if (node.id != null && node.id != '') { 
                        if (node.id != 'o') { 
                            c.callback.call(this, node.id, node.text); 
 
                            c.collapse(); 
                        }else{ 
                        Ext.Msg.alert("提示","此节点无效,请重新选择!") 
                        } 
 
                    } 
                }) 
 
        this.on('expand', function() { 
                    this.tree.render('tree'); 
                    this.tree.expandAll(); 
                }); 
 
        TreeSelector.superclass.initComponent.call(this); 
    } 

})
 

 

 

使用方法 new TreeSelector({callback:function(){  }})

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值