我有一個帶有組合框編輯器的網格。我想根據行記錄中的值過濾組合框。Extjs在網格編輯器中對組合框進行過濾
我現在得到的是這樣的:
editor: {
xtype: 'combo',
forceSelection: true,
store: 'ship.Transportmodes',
displayField: 'name',
valueField: 'id',
queryMode: 'local',
listeners: {
expand: function(combo){
var shipper = combo.up('grid').editingPlugin.activeRecord.get('shipper');
combo.store.filterBy(function(record){
console.log(record.get('shippers').indexOf(shipper))
return record.get('shippers').indexOf(shipper) != -1
})
}
},
editable: false
}},
這是工作,但有一個問題:當下拉列表中顯示的字段的頂部,其餘選項從外地遠處出現時,已刪除選項的空間仍被分配。
我試圖篩選存儲在任何這些事件:
- 格:beforeedit
- 組合:beforerender
- 組合:渲染
- 組合:一個AfterRender
在每種情況下,結果如下:商店被正確過濾,但在組合框展開的時間,過濾器被清除。
我想了解會發生什麼。爲什麼組合框在顯示選項列表之前總是清除其商店的過濾器?
任何人都可以透露幕後的情況嗎?或者告訴我我在畫面中缺少的是什麼?
你可以試試['clearFilterOnBlur:FALSE'(http://docs.sencha.com/extjs/4.2 .2 /#!/ api/Ext.form.field.ComboBox-cfg-clearFilterOnBlur),以便過濾器不被清除。 – Alexander
@alexander謝謝,我會嘗試。我看到了這個配置,但我認爲它只會在模糊組合時改變行爲。 –
@alexander不,不幸的是這並沒有幫助。 clearFilterOnBlur僅適用於鍵入使用的過濾器。 –