欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

带树的下拉框

程序员文章站 2022-07-14 18:08:03
...
项目中用到的一个带树的下拉框

var unitCB = new Ext.form.ComboBox({// 所属单位选择框
fieldLabel : '所属单位',
resizable : true,
store : new Ext.data.SimpleStore({
fields : [],
data : [[]]
}),
editable : false,
valueField : 'id',
displayField : 'text',
value : ' ',
maxHeight : 390,
// labelStyle : micolor,
anchor : '84%',
mode : 'local',
triggerAction : 'all',
allowBlank : false,
onSelect : Ext.emptyFn(),
emptyText : '请选择所属单位'
});

add_unitCB.tpl = '<tpl for="."><div id="' + unitCB.getId()
+ 'orgTpl" style="height:390px;width:100"><div id="'
+ unitCB.getId() + 'orgTreeDiv"></div></div></tpl>';
var orgTreeloader = new Ext.tree.TreeLoader({
url : '/stm/system/org.do?method=findOrgTree'
});

orgTreeloader.on('beforeload', function(orgTreeloader, node) {
this.baseParams.id = node.attributes.id; // set parameter
});

var orgTreeRoot = new Ext.tree.AsyncTreeNode({
id : '00',
text : '根节点'
});

var orgTree = new Ext.tree.TreePanel({
width : 210,
autoScroll : true,
containerScroll : true,
collapsible : true,
loader : orgTreeloader,
root : orgTreeRoot,
animate : false,
border : false,
rootVisible : true,
border : false
});

var org_id; // 存储所属单位的ID
// 监听下拉树的节点单击事件
orgTree.on('click', function(node) {
org_id = node.attributes.id;
unitCB.setValue(node.text);
unitCB.collapse();
});
// 默认选择总公司
unitCB.on('render', function() {
org_id = '00';
unitCB.setValue('根节点');
});
// 监听下拉框的下拉展开事件 下拉框中加入树
unitCB.on('expand', function() {
// 将UI树挂到treeDiv容器
orgTree.root.reload(); // 每次下拉都会加载数据
// orgTree.root.expand(); //只是第一次下拉会加载数据
orgTree.render(unitCB.getId() + 'orgTreeDiv');
});