装载插件,页面引入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");
插件使用说明完结。---------------------但是这种方法治标不治本,只是因为时间紧凑合着用。现在我找到更好的方法。见另一偏文章---------------------