首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

ExtJS表单之上拉树

2012-11-23 
ExtJS表单之下拉树ExtJS表单之下拉树作者:zccst一、数据源var store_type Ext.util.JSON.encode(o.store_

ExtJS表单之下拉树
ExtJS表单之下拉树
作者:zccst

一、数据源

var store_type = Ext.util.JSON.encode(o.store_type);var store_type_obj = eval( "(" + store_type + ")" );setStoreTreeByNode(store_type_obj);


二、展示
Ext.QuickTips.init();var storetree = new Ext.tree.TreePanel({//el : "container",animate : true,title : "请点击选择",collapsible : true,enableDD : true,enableDrag : true,rootVisible : false,autoScroll : true,autoHeight : true,width : 150,lines : true});// 根节点var storeroot = new Ext.tree.TreeNode({id : "root",text : "根节点",checked : false});storetree.setRootNode(storeroot);//设置监听storetree.on('checkchange', function(node, checked) {node.expand();node.attributes.checked = checked;node.eachChild(function(child) {child.ui.toggleCheck(checked);child.attributes.checked = checked;child.fireEvent('checkchange', child,checked);});}, storetree);function setStoreTreeByNode(store_type_obj){var node = storeroot.appendChild(new Ext.tree.TreeNode({text : '存储机型',allowDrag : false,checked : false}));for(var i = 0; i < store_type_obj.length; i++){node.appendChild(new Ext.tree.TreeNode({text : store_type_obj[i].model,allowDrag : false,checked : false}));}}//下拉树var storeComboxWithTree = new Ext.form.ComboBox({  store:new Ext.data.SimpleStore({fields:[],data:[[]]}),  editable:false,  mode: 'local',  triggerAction:'all',  maxHeight: 240,  tpl: "<tpl for='.'><div style='height:240px'><div id='storetree'></div></div></tpl>",  selectedClass:'',  onSelect:Ext.emptyFn,emptyText:'请选择机型...'});storetree.on('click',function(node){storeComboxWithTree.setValue(node.text);storeComboxWithTree.collapse();});  storeComboxWithTree.on('expand',function(){  storetree.render('storetree');  });



三、获取选中的值
var s = storetree.getChecked();var checked_s = new Array();for (var j = 0; j < s.length; j ++){checked_s.push(s[j].text);}//if(checked_s.length == 0){alert('选择不能为空');return false;}var str_s = checked_s.toString();


版本一:
var comboxWithTree = new Ext.form.ComboBox({           store:new Ext.data.SimpleStore({fields:[],data:[[]]}),           editable:false,           mode: 'local',           triggerAction:'all',           maxHeight: 200,           tpl: "<tpl for='.'><div style='height:200px'><div id='tree'></div></div></tpl>",           selectedClass:'',           onSelect:Ext.emptyFn       });       var tree = new Ext.tree.TreePanel({           loader: new Ext.tree.DWRTreeLoader({dwrCall:Tmplt.getTmpltTree}),           border:false,            root:new Ext.tree.AsyncTreeNode({text: '模板根目录',id:'0'})         });         tree.on('click',function(node){             comboxWithTree.setValue(node.text);             comboxWithTree.collapse();         });       comboxWithTree.on('expand',function(){           tree.render('tree');         });       comboxWithTree.render('comboxWithTree');  

版本二:
var comboxWithPanel = new Ext.form.ComboBox({       store:new Ext.data.SimpleStore({fields:[],data:[[]]}),       editable:false,       mode: 'local',       triggerAction:'all',       maxHeight: 200,       tpl: '<div style="height:200px"><div id="panel"></div></div>',       selectedClass:'',       onSelect:Ext.emptyFn   });   comboxWithPanel.render('comboxWithPanel');   var tree2 = new Ext.tree.TreePanel({       loader: new Ext.tree.DWRTreeLoader({dwrCall:Tmplt.getTmpltTree}),       border:false,       autoScroll:true,       root:new Ext.tree.AsyncTreeNode({text: '模板根目录',id:'0'})       });   var border = new Ext.Panel({       title:'面板title',       layout:'fit',       border:false,       height :200,       tbar:[{text:'确定一'},'-',new Ext.form.TextField({id: 'paramCnName',width:60}),{text:'查找一'}],       bbar:[{text:'确定二'},'-',new Ext.form.TextField({id: 'aa',width:60}),{text:'查找二'}],       items: tree2       });   comboxWithPanel.on('expand',function(){       border.render('panel');       });  



另一个三级节点的实例

function setDepTreeByNode(obj){rootnode = new Ext.tree.TreeNode({text : '全部',allowDrag : false,checked : false});deproot.appendChild(rootnode);     //0级var tmpDep = "";var tmpPro = "";var tmpSer = "";var departnode  = null;var productnode = null;var servicenode = null;for( var i = 0; i < obj.length; i++){if(!tmpDep){tmpDep = obj[i].department;tmpPro = obj[i].product;tmpSer = obj[i].service;}// 仅执行一次if(departnode == null && productnode == null && servicenode == null){departnode = new Ext.tree.TreeNode({text : obj[i].department,allowDrag : false,checked : false});productnode = new Ext.tree.TreeNode({text : obj[i].product,allowDrag : false,checked : false});servicenode = new Ext.tree.TreeNode({text : obj[i].service,allowDrag : false,checked : false});rootnode.appendChild(departnode);       //一级departnode.appendChild(productnode);    //二级productnode.appendChild(servicenode);   //三级continue;//第一轮循环结束}// 追加二级节点if(obj[i].department == tmpDep){//追加三级节点if(obj[i].product == tmpPro){servicenode = new Ext.tree.TreeNode({text : obj[i].service,allowDrag : false,checked : false});productnode.appendChild(servicenode);//三级tmpSer = obj[i].service;}else{productnode = new Ext.tree.TreeNode({text : obj[i].product,allowDrag : false,checked : false});servicenode = new Ext.tree.TreeNode({text : obj[i].service,allowDrag : false,checked : false});departnode.appendChild(productnode);    //二级productnode.appendChild(servicenode);   //三级tmpPro = obj[i].product;tmpSer = obj[i].service;}}else{//追加一级节点departnode = new Ext.tree.TreeNode({text : obj[i].department,allowDrag : false,checked : false});productnode = new Ext.tree.TreeNode({text : obj[i].product,allowDrag : false,checked : false});servicenode = new Ext.tree.TreeNode({text : obj[i].service,allowDrag : false,checked : false});rootnode.appendChild(departnode);   //一级departnode.appendChild(productnode);    //二级productnode.appendChild(servicenode);//三级//更新当前值tmpDep = obj[i].department;tmpPro = obj[i].product;tmpSer = obj[i].service;}}}


select distinct * from (select department,product,service from service_list) a;

热点排行