当前位置: 代码迷 >> Web前端 >> Ext.Tree扩充CheckBox方法
  详细解决方案

Ext.Tree扩充CheckBox方法

热度:101   发布时间:2012-09-02 21:00:34.0
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↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

?

?

  相关解决方案