ExtJS 6.2.0 Combobox过滤返回多值问题求助
解决ExtJS Combobox过滤器前缀匹配而非精确匹配的问题
你的问题源于默认过滤器对字符串类型字段采用了前缀匹配逻辑,导致所有以选中ID开头的记录都被筛选出来。要实现精确匹配,只需给过滤器添加operator配置项指定精确匹配规则:
修改后的代码如下:
xtype: 'combobox', name: 'actor', fieldLabel: 'Actor', typeAhead: true, forceSelection: true, queryMode: 'local', displayField: 'name', valueField: 'id', bind: { store: 'actorStore', value: '{actor.id}', // 修正原代码的语法错误,添加绑定所需的大括号 filters: [{ property: 'customerId', value: '{customer.value}', disableOnEmpty: true, operator: '=' // 添加精确匹配操作符 }] // 修正原代码的语法错误,补全闭合括号 }
额外注意点:
- 确保
customer.value的类型和actorStore中customerId字段的类型一致(比如同为数值或同为字符串),避免类型不匹配引发的非预期匹配。 - 原代码存在两处语法错误:绑定
actor.id时缺少大括号、filters数组及bind对象未闭合,已在示例中修正。
内容的提问来源于stack exchange,提问作者CycleGeek
相关产品推荐
相关产品推荐

