带树的下拉框
程序员文章站
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');
});
下一篇: Bootstrap下拉框带搜索