extjs 下拉日期_ExtJs 可查询的下拉框

最近项目中有个需求,就是有四个模块需要加载一个主表的内容,比如说这个表叫项目表(比如项目表里有两个字段一个是项目ID--projCd,还有一个是项目名称--projNm)。主表的内容的要放在一个下拉框里选择。当然他的特别之处在于,项目太多,需要一个满足可以查询的下拉框来匹配项目名称。由于有多处地方要用,所以我把生成这个下拉框的JS做了一下封装,需要传入模块各自的查询Action的URL,还有各模块对应表里项目ID的字段名称(用来传参数)等等。

可喜可贺的是项目中用了ExtJS,不必四处去搜罗JQuery插件了。那么以下代码是如何实现ExtJS的下拉框查找。

具体参数见下面代码的注释,一目了然。

介绍业务:选择一个项目进行验收,在验收的添加页面加载持有项目信息的下拉框,获取下拉框选中的项目ID,添加到项目验收表中。

表单一:生成下拉框的js文件

/**

* 构造项目下拉框

* 贞心真义

* @param url action查询地址

* @param selectValue 默认选中

* @param renderTo 下拉框Id

* @param hiddenName projCd*/

functionInitDropDownListExt(url,selectValue,renderTo,hiddenName){var store = newExt.data.JsonStore({

url:url,

fields: ['proCd','proNm'],

root:'data'});var combo = newExt.form.ComboBox({

store: store,

displayField:'proNm',

valueField:"proCd",

typeAhead:true,

triggerAction:'all',

selectOnFocus:true,

applyTo: renderTo,

value:selectValue,

hiddenName : hiddenName, //对应关联表中的项目ID,作为传参数用的

listeners : {'beforequery':function(e){var combo =e.combo;if(!e.forceAll){var input =e.query;//检索的正则

var regExp = new RegExp(".*" + input + ".*");//执行检索

combo.store.filterBy(function(record,id){//得到每个record的项目名称值

var text =record.get(combo.displayField);returnregExp.test(text);

});

combo.expand();return false;

}

}

}

});

}

使用方法如下:

表单二:html(当然,页面需要引用上面的Js文件)

表单三:JavaScript

Ext.onReady(function(){//初始化项目的信息

var proSelObj=$('#pro');var procdsel='${关联表.projCd}';if(procdsel==null||procdsel==""){//加载符合要求的项目

InitDropDownListExt("查询action对应的URL.action","","pro","关联表.projCd");

}

});

以上就是ExtJs的可查询下拉框的实现方式,ExtJs非常强大,越学习,越能发现它的魅力所在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值