当我在API调用中执行过滤操作时,不包括过滤参数值,即名称值,如下所示
_dc:1427270031651
counrtyId:2
custId:1
id:
name:
page:1
start:0
limit:10
sort:[{"property" : "id", "direction" : "desc"}]
这是我的商店
Ext.define('MyDesktop.store.DirectoriesStore', {
extend: 'Ext.data.Store',
requires:'MyDesktop.model.DirectoriesNumberModel',
model: 'MyDesktop.model.DirectoriesModel',
storeId:'DirectoriesStore',
autoLoad : {
params : {
start : 0,
limit : '10'
}
},
pageSize : 10,
remoteSort : true,
sorters : [{
property : 'id',
direction : 'desc'
}],
remoteFilter : true,
proxy:{
type:'ajax',
url:'./configuration/directory/get',
reader:{
type: 'json',
root: 'data',
totalProperty: 'total'
},
extraParams: {
'countryId': '',
'custId': ''
}
},
autoLoad:false
});
这是我的观点
Ext.require([
'Ext.ux.grid.FiltersFeature'
]);
var filters = {
ftype: 'filters',
local: true,
features: [{type: 'integer',dataIndex: 'name'},
{type: 'string',dataIndex: 'description'},
{type: 'string',dataIndex: 'fileName'}]
};
我按如下方式添加了网格:
features: [filters],
过滤器正在运行,但在API调用过滤器中没有调用
请有人帮助我。
答案 0 :(得分:0)
您的商店已停用远程过滤功能。
将remoteFilter: false
更改为remoteFilter: true
,然后重试。
来自docs:
remoteFilter:Boolean
如果将任何过滤操作推迟到服务器,则为true。如果是假的, 过滤在客户端本地完成。
您还可以明确告诉您的应用程序在本地使用local:true
配置应用过滤器。
答案 1 :(得分:0)
问题是,params没有被发送到ajax调用。但是,嘿,尝试在加载商店后更改页面。然后尝试再次排序。您将看到params现在正在Ajax请求中发送。
我目前的解决方法是通过gridStore.loadPage(page, [options])
模仿更改页面。在此之后,您还应该将其重新更改为第一页。
更改页面后,排序将适用于所有后续请求。
这当然只是一种解决方法,我们可能有不同的要求。我的网格在渲染后调用store.load()
,所以我在那里附加了更改页面。
希望你有一些提示。
注意:这只是一个解决方法!