`

Ext.Tree扩展CheckBox方法

 
阅读更多

/////引入这个JS:    Ext.ux.tree.TreeCheckNodeUI.js

//////////////////////////////////////////////////

//业务品类(类别TYPE)
            layout : 'tableform',
            border : false,
            items : [{
                xtype : 'textfield',
                fieldLabel : '业务品类',
                readOnly : (customFields_id != null && customFields_id != "") ? true : false,
                name : 'TYPE',
                id : 'customfields_type_id',
                readOnly : true,
                width : 350
            }, {
                xtype : 'button',
                text : '选择',
                style : 'margin-left:10px;',
                disabled : (customFields_id != null && customFields_id != "") ? true : false,
                id : 'btnSelect',
                handler : customfields_build_SelectBusinessCategory
            }]

////////////////////////////////////////////

 

 

  //↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓选择业务品类 region↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    /**
     * 新建自定义自段 选择业务品类
     */
    function customfields_build_SelectBusinessCategory() {
        var departmentIDArr = new Array();
        Array.prototype.contains = function(element) {
            for (var i = 0; i < this.length; i++) {
                if (this[i] == element) {
                    return true;
                }
            }
            return false;
        }

        var checkIDS = setting_customfieldsbuild_form.getForm().findField('category_id').getValue();
        if (checkIDS != "" && checkIDS != null) {
            departmentIDArr = checkIDS.split(',');
        }

        function workflow_build_checkEachChildNode(treeNode) {
            var childLength = treeNode.childNodes.length;
            for (var i = 0; i < treeNode.childNodes.length; i++) {
                if (departmentIDArr.contains(treeNode.childNodes[i].id)) {
                    treeNode.childNodes[i].attributes.checked = true;//.select();//.checked=true;//toggleCheck(true);
                    if (!treeNode.childNodes[i].leaf) {
                        workflow_build_checkEachChildNode(treeNode.childNodes[i]);
                    }
                }
            }
        }
        Ext.getCmp('btnSelect').disable();
        var setting_customfield_BusinessCategory_treePanel = new Ext.tree.TreePanel({
            lines : true,
            containerScroll : true,
            autoScroll : true,
            //checkModel : 'single',
            checkModel : 'cascade',// 对树的级联多选  
            onlyLeafCheckable : false,//对树所有结点都可选  
            loader : new Ext.tree.TreeLoader({
                dataUrl : 'BLL/ModuleSystem/Setting/BusinessCategory/Operation.aspx?cmd=businessCategoryTree&rand=' + Math.round(Math.random() * (10000 - 1)).toString(),
                baseAttrs : {
                    uiProvider : Ext.tree.TreeCheckNodeUI
                }
            }),
            root : new Ext.tree.AsyncTreeNode({
                id : "root2",
                text : "选择业务品类",
                expanded : true
            })
        });
        if (checkIDS != "" && checkIDS != null) {
            setting_customfield_BusinessCategory_treePanel.expandAll();
        }
        setting_customfield_BusinessCategory_treePanel.on('load', workflow_build_checkEachChildNode);
        var setting_customfield_BusinessCategory_Form = new Ext.form.FormPanel({
            layout : 'form',
            labelAlign : 'top',
            layout : 'fit',
            bodyStyle : 'padding:20px',
            width : 400,
            labelWidth : 70,
            labelAlign : "right",
            autoScroll : true,
            items : [setting_customfield_BusinessCategory_treePanel],
            buttons : [{
                text : "选择",
                handler : function() {
                    var checkedNodes = setting_customfield_BusinessCategory_treePanel.getChecked();
                    var checkText = new Array;
                    var checkId = new Array;// 存放选中id的数组
                    for (var i = 0; i < checkedNodes.length; i++) {
                        checkText.push(checkedNodes[i].text);// 添加id到数组
                        checkId.push(checkedNodes[i].id);
                    }
                    var value = checkText.toString().replace(/\,/g, ';');
                    setting_customfieldsbuild_form.getForm().findField('TYPE').setValue(value);
                    setting_customfieldsbuild_form.getForm().findField('category_id').setValue(checkId.toString());
//                    Ext.getCmp('customfields_type_id').setValue(value);
//                    Ext.getCmp('businesscategory_id_hidden').setValue(checkId.toString());
                    Ext.getCmp('btnSelect').enable();
                    customfields_build_BusinessCategoryWin.close();
                }
            }, {
                text : "取消",
                handler : function() {
                    Ext.getCmp('btnSelect').enable();
                    customfields_build_BusinessCategoryWin.close();
                }
            }]
        });
        var customfields_build_BusinessCategoryWin = new Ext.Window({
            title : "选择业务品类",
            layout : 'fit',
            width : 400,
            height : 300,
            closeAction : 'destroy',
            autoScroll : true,
            plain : true,
            resizable : false,
            constrainHeader : true,
            items : setting_customfield_BusinessCategory_Form,
            listeners : {
                'beforedestroy' : function(p) {
                    Ext.getCmp('btnSelect').enable();
                }
            }
        });
        customfields_build_BusinessCategoryWin.show();
    }
    //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑选择业务品类 endregion↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

 

 

  • 大小: 43.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics