[Struts2+Spring2.5+Hibernate3(JPA)+ExtJS3基本后台 将ExtJS替换为3..2版本后发现下拉数有些异常:之前展开下来树的下级节点时,下拉菜单不会关掉。但是在3.2版本中无论
2年的工作中,下拉树用的地方实在太多了,选区域、还有角色权限分配,都离不开下拉树。也尝试过不少框架的下拉树,jqueryeasyui、extjs等原装的下拉树复杂不说,而且不够强大。于是尝试第三方下拉树组件,
ztree果然不错,简单好用,而且相当的强大。先看看我把ztree引入Extjs4.2中的几个场景:
角色权限分配:
下拉组件群,还带搜索功能,风格与extjs无缝对接
表单多选:
下面说说在form表单中使用的方法[ /** * @class Ext.app.AdSiteGrid * @extends Ext.grid.GridPanel * 内容项Add */ Ext.define('ctiWsSort', { extend: 'Ext.data.Model', fields: [
使用起来也很方便,而且渲染速度很快,几乎不耗时,只要在面板弹出时,绑定事件即可
var date1 = new Date().getTime()
windowSelect("institutionType",'SB_DICTIONARIES','INST');
windowSelect("companyType",'SB_DICTIONARIES','COMT');
windowSelect("department",'SB_DICTIONARIES','DEPX');
windowSelect("accordingManage",'SB_DICTIONARIES','ACMX');
windowSelect("politicsType",'SB_DICTIONARIES','POLT');
windowSelect("companyPolitics",'SB_DICTIONARIES','SBPL');
windowSelect("shegangcategory",'SB_DICTIONARIES','SHEG');
windowSelect("institution",'SB_DICTIONARIES','INSX');
windowSelect("institutionNature",'SB_DICTIONARIES','INSN');
windowSelect("companyNature",'SB_DICTIONARIES','COMN');
windowSelect("classType",'SB_DICTIONARIES','CLAX');
windowSelect("companyGrade",'SB_DICTIONARIES','GRAX');
windowSelect("registerType",'SB_DICTIONARIES','REGT');
windowSelect("companyBolPolitics",'SB_DICTIONARIES','CBPL');
windowSelect("industrycomments",'SB_DICTIONARIES','INDU');
windowSelect("sshy",'SB_DICTIONARIES','SSHY',true);
windowSelect("gytype",'SB_DICTIONARIES','GYLX');
var date2 = new Date().getTime()
console.log("本次请求共耗时:"+(date2-date1)+" 毫秒") 一、面板出现后,绑定下拉框方法。
二、 表单里的内容,和普通的表单一样,一个隐藏值存key,一个存value
{
name:'panyPolitics',
id:'companyPolitics',
hidden:true,
fieldLabel: '*单位所在政区key'
}, {
name:'null',
id:'companyPoliticsLab',
vtype:'isnotNull',
fieldLabel: '*单位所在政区'
}
三、封装的方法:
/**
*
* @param str
* @param table
* @param label
*/
function windowSelect(str,table,label,beClick,check){
var kv_id = str+"-inputEl";//
var v_id = str+"Lab-inputEl";//
var obj = $("#"+v_id)
var kobj = $("#"+kv_id)
/**
* 初始化绑定方法
*/
$.select.init(v_id,kv_id,table,label,beClick,check);
// 转成jquery对象
var $obj = $('
')
$("#"+v_id).parent().after($obj);
$obj.click(function(){
$.select.show(v_id,kv_id,table,label,"",beClick,check)
})
};
其中 $.select 即为自己写的方法,稍后传上来。
[界面:MyWindowUi = Ext.extend(Ext.Window, { height : 150, width : 310, layout : 'column', title : '/10/20练