我有两个组合框。在第一个组合中,控制器中有select事件,它添加了过滤器来获取第二个组合的数据:
secondComboStore.remoteFilter = true;
filters.push({property: 'Id', value: combo.getValue()});
我希望在客户端基于键入字符的第二个组合过滤器,但问题是在我键入的每个字符上,请求被发送到我不想要的服务器。 这是第二个组合:
xtype: 'combo',
name: 'SomeName',
itemId: 'someNameId',
fieldLabel: 'name',
editable: true,
allowBlank: false,
queryParam: false,
valueField: 'someId',
displayField: 'someName',
store: 'mySecondStore'
在那个商店中,我只定义了在读取时调用的模型和服务器端服务。 到目前为止,我已经尝试将queryParam设置为false并将queryMode设置为local,但请求仍然发送到服务器。 我也试过mySecondStore的load事件将remoteFilter设置为false,但是在组合中没有显示数据。
编辑: 如果我把这些行放在商店加载事件上:
this.clearFilter(true);
this.remoteFilter=false;
仅在首次加载商店时才有效。当它再次加载时,我开始输入时不会过滤组合中的值。
答案 0 :(得分:1)
将editable
设为false
。当你有一组有限的选择时,为什么你需要在第二个组合中进行编辑?
编辑:
使用单独的商店加载过滤后的数据。然后将其复制到设置为 local 模式的mySecondStore
。将editable
设为true
。
答案 1 :(得分:0)
将这两个属性用于第二个组合。
typeAhead: true,
forceSelection: true, // don't allow custom value typing in dropdown
queryMode: 'local'