我是 ExtJs 的新手。我有一个从 ajax(带有 json)调用填充的商店。面板正在显示此商店数据。我在窗口的右侧底部也有分页工具栏。第一次加载页面时,它通过从商店中获取显示正确数量的记录。例如:如果商店有 1000 条记录,则“显示 1000 条记录中的 1-100 条”。在面板上应用过滤器(例如:按名称)后,我可以看到 300 条记录。在这种情况下,pagintoolbar 应该向我显示“显示 300 个中的 1-100 个。但是分页工具栏向我显示旧数据,即“显示 1-100 个记录,共 1000 个记录”。当在面板上应用过滤器时,商店没有更新
请帮助我在这方面花费了很多时间,但仍然一无所获。
请找到代码供您参考
网格和分页工具条码:
var securityGrid = Ext.create('Ext.grid.Panel', {
id: 'pcdbSecurityDetailGrid',
dockedItems: [menuToolbar, sortToolbar],
store: requestDetailStore,
selModel: openSm,
loadMask: true,
selType: 'cellmodel',
sortableColumns : false,
columns: [
{text: '<div class="edit"> </div>', width: 30, dataIndex: 'write', filter: {type: 'string'}, locked:true, sortable: false,
renderer:function(val, meta, r){
if(val == 'Y') {
return Ext.String.format('<div class="edit" onclick="javascript:handleLockingForClick(null, 4, {0});"> </div>', r.get("detailId"));
} else {
return ''; //handleLockingForClick(record, dataIndex, detailId)
}
}
},
{text: "Individual Security<br/>Response", width: 100, dataIndex: 'singleResponseFlag', filter: {type: 'string' }, sortable: false}
],
bbar: Ext.create('Ext.PagingToolbar', {
store: requestDetailStore,
displayInfo: true,
displayMsg: 'Displaying records {0} - {1} of {2}',
emptyMsg: "No Data to display"
}),
columnLines: true
});
店铺代码:
var requestDetailStore = Ext.create('Ext.data.JsonStore', {
id: 'requestDetailStoreId',
model: 'RequestDetail',
pageSize: 200,
//remoteSort: true,
proxy: {
type: 'ajax',
timeout :900000,
url: 'getPriceChallengeRequestDetailData.htm',
reader:{
type: "json",
root: "pcdbData",
totalProperty: 'totalCount',
idProperty: "detailId"
},
listeners: {
'exception' : function (proxy, response, operation, eOpts) {
if(response.status == 200) {
if(response.responseText.indexOf("sessiontimeout") > 0) {
needConfirm = 0;
window.location = 'logout.htm';
}
}
}
}
}
});