ExtJS 组合框过滤器
ExtJS combobox filter
我有两个组合框。第一个用于选择地区,第二个用于选择省。应显示在省组合框中的值将基于在区域组合框中选择的值。
区域组合框代码:
xtype: 'combobox',
label: 'Region ID',
margin: '10 20',
flex: 1,
valueField: 'regionid',
displayField: 'regionname',
store: 'RegionStore',
minLength: 1,
id: 'region_id',
reference: 'region_id',
name: 'region_id',
listeners: {
select: function(combo, value) {
var id = Ext.getCmp('province'),
store = id.getStore();
if (!value) {
store.getFilters().removeAll();
}
else {
store.filter('regionid', val)
}
}
}
省组合框代码:
label: 'Province',
margin: '10 20',
flex: 1,
queryMode: 'remote',
store: 'ProvinceStore',
valueField: 'provinceid',
displayField: 'provincename',
minLength: 1,
id: 'province',
name: 'province',
reference: 'province'
我没有收到任何错误,但是当我点击省份组合框时(假设我已经为区域组合框选择了一个值),省份组合框中显示的值没有被过滤,相反,所有显示结果。我已经研究了好几天了。有人可以帮忙吗?
您正在使用queryMode: 'remote'
,因此您的服务器returns数据。
前端管不了,返回什么。
加上你的例子 val
应该是 value
.
我会去连锁店,它有一个基于选择的过滤器。
这是一个 fiddle 来展示这一点:
Fiddle
这与
重复
我有两个组合框。第一个用于选择地区,第二个用于选择省。应显示在省组合框中的值将基于在区域组合框中选择的值。
区域组合框代码:
xtype: 'combobox',
label: 'Region ID',
margin: '10 20',
flex: 1,
valueField: 'regionid',
displayField: 'regionname',
store: 'RegionStore',
minLength: 1,
id: 'region_id',
reference: 'region_id',
name: 'region_id',
listeners: {
select: function(combo, value) {
var id = Ext.getCmp('province'),
store = id.getStore();
if (!value) {
store.getFilters().removeAll();
}
else {
store.filter('regionid', val)
}
}
}
省组合框代码:
label: 'Province',
margin: '10 20',
flex: 1,
queryMode: 'remote',
store: 'ProvinceStore',
valueField: 'provinceid',
displayField: 'provincename',
minLength: 1,
id: 'province',
name: 'province',
reference: 'province'
我没有收到任何错误,但是当我点击省份组合框时(假设我已经为区域组合框选择了一个值),省份组合框中显示的值没有被过滤,相反,所有显示结果。我已经研究了好几天了。有人可以帮忙吗?
您正在使用queryMode: 'remote'
,因此您的服务器returns数据。
前端管不了,返回什么。
加上你的例子 val
应该是 value
.
我会去连锁店,它有一个基于选择的过滤器。
这是一个 fiddle 来展示这一点: Fiddle
这与