Extjs多选下拉框01

来源:互联网 发布:php邮箱验证正则表达式 编辑:程序博客网 时间:2024/06/05 05:52

装载插件,页面引入js后,即可向其他组件一样直接使用:

{layout:'form',plain: true,items:[{fieldLabel:'多选下拉框',triggerAction:'all',id:'multselect',name:'multselect',xtype: 'lovcombo',emptyText:'**请选择**',width:100, mode : 'local', //设置数据已经读取到本地了  valueField : 'value', displayField : 'value', store : _ptypestore}]}


但是这个插件有个问题,你选择多个值以后,当你点击页面其他区域的时候,你所选的值会消失,文本框只有第一个值。看了下源代码,暂时没找到根本原因。找了个凑合用的方法。

出现bug的原因是你点击弹出的文本域以外的任何地方,js都进行了重新赋值,所以我在对它赋值的时候加了个判断,根据这个来判断是否要重新赋值。如下:

在XXX.lovcombo.js文件里,找到setValue:function(v) 方法。

将其改成setValue:function(v, index) ,然后在判断,当index等于什么时候进行里面的赋值操作。

同时更改onSelect:function(record)事件为onSelect:function(record, index),注意:当它在设值setValue时,记得要多加一个参数。

如果要调用其他方法,类似的进行更改就是了。

另外要注意的是在页面要对文本框进行设值时,也要多加后面的index参数才行,eg:Ext.getCmp("XXX").setValue("","OK");

插件使用说明完结。---------------------但是这种方法治标不治本,只是因为时间紧凑合着用。现在我找到更好的方法。见另一偏文章---------------------

原创粉丝点击