如何在ExtJs 6中加载商店时发送自定义过滤器参数

时间:2017-02-03 17:48:46

标签: extjs filter extjs4 upgrade extjs6

在ExtJs 4 中,可以让JsonStore配置remoteFilter: false,然后将参数发送到服务器,允许仍然在服务器上进行过滤,如下所示:

store.load({
    filters: [{property: 'state', value: 5}]
})

这是记录的for Extjs 4.2.2options:config对象,在加载之前传入Ext.data.Operation对象。”

目的是将行的子集加载到商店中(例如,用户有权访问的所有记录)并允许本地过滤(例如,对某些列进行文本搜索)。

在ExtJs 6.2 中,这不再有效。只有属性scopecallbackdocumented作为store.load的参数,并且在ExtJs 6.2中使用此功能会产生致命错误:filter.getFilterFn() is not a function in ext/packages/core/src/data/proxy/Server.js on line 389

如何在ExtJs 6.2中重现类似行为并仅为一次store.load调用发送额外参数?

2 个答案:

答案 0 :(得分:2)

你可以:

 store.load({
     params: {
         state: 5
     }
 });

答案 1 :(得分:2)

严格等同于ExtJs 4的

store.load({
    filters: [{property: 'state', value: 5}]
})
ExtJs 6中的

是以下内容:

store.load({
    params: {
        filter: Ext.encode([{property: 'state', value: 5}])
    } 
})