[英]Extjs 4.2.1 Local filtering of Grid panel with Paging
摆弄问题的地方在这里https://fiddle.sencha.com/#view/editor&fiddle/2o8q
网上有很多关于如何对具有分页功能的网格面板进行本地过滤的方法,但是没有人为我工作。 我有以下网格
var grid = Ext.create('Ext.grid.GridPanel', {
store: store,
bbar: pagingToolbar,
columns: [getColumns()],
features: [{
ftype: 'filters',
local: true,
filters: [getFilters()],
}],
}
此处的过滤器具有以下形式(只需复制过滤器对象的粘贴部分)
{
type: 'string',
dataIndex: 'name',
active: false
}, {
type: 'numeric',
dataIndex: 'id',
active: false
},
店铺如下
var store = Ext.create('Ext.data.Store', {
model: 'Store',
autoLoad: true,
proxy: {
data: myData,
enablePaging: true,
type: 'memory',
reader: {
type: 'array',
}
},
});
在这里myData-以以下形式出现
["1245", "Joen", "Devis", "user", "", "email@com", "15/6/2017"],
["9876", "Alex", "Klex", "user", "", "email@com", "15/6/2017"],[...
我也有pageingToolbar
var pagingToolbar = Ext.create('Ext.PagingToolbar', {
store: store, displayInfo: true
});
因此,所有元素都使用我在顶部声明的存储。 每个网格页面有25个元素,而myData中约有43个元素。 所以现在我的网格中有2页。 例如,当我在网格的第一页上并应用字符串过滤器作为名称时,它过滤第一页(25个元素),当我移至2d页时,网格也被过滤,但是在第二页的范围内。 因此,每个页面分别进行过滤。 选中过滤器的复选框时,我需要同时过滤所有页面,并相应地更新pageingToolbar的信息。 我做错了什么?
几乎可以肯定这是一个较晚的答案,但是我已经找到了您可能正在寻找的用于分页网格的本地存储过滤器解决方案:
https://fiddle.sencha.com/#fiddle/2jgl
它使用商店代理将数据加载到网格中,而不是在商店配置中显式指定它们。
一般来说:
....
proxy: {
type: 'memory',
enablePaging: true,
....
},
pageSize: 10,
remoteFilter: true,
....
store.getProxy().data = myData;
store.reload()
store.filter([{ property: 'name', value: 'Bob' }]);
有关更多详细信息,请参见提供的小提琴示例中的President.js存储配置。
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.