【发布时间】:2016-09-30 11:24:11
【问题描述】:
我有一个带有组合框编辑器的网格。我想根据行记录中的值过滤组合框存储。
我现在得到的是:
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
}},
这是可行的,但有一个问题:当下拉菜单显示在字段顶部时,其余选项显示在远离字段的位置,仍为已删除选项分配空间。
我尝试根据以下任何事件过滤商店:
- 网格:编辑前
- 组合:渲染前
- 组合:渲染
- 组合:后渲染
在每种情况下,结果如下:商店被正确过滤,但在组合框展开时,过滤器被清除。
我想了解会发生什么。为什么组合框总是在显示选项列表之前清除其商店的过滤器?
任何人都可以提供幕后的见解吗?或者告诉我我在图片中缺少什么?
【问题讨论】:
-
你可以试试
clearFilterOnBlur:false这样过滤器就不会被清除了。 -
@alexander 谢谢,我会试试的。我看到了这个配置,但我认为它只会在模糊组合时改变行为。
-
@alexander 不,不幸的是这没有帮助。 clearFilterOnBlur 仅适用于键入时使用的过滤器。
标签: extjs filter combobox extjs4.2