Extjs多選下拉框01

裝載插件,頁面引入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");

插件使用說明完結。---------------------但是這種方法治標不治本,只是因爲時間緊湊合着用。現在我找到更好的方法。見另一偏文章---------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章