具有远程缓冲存储的 ExtJS 网格无法呈现第一页
Posted
技术标签:
【中文标题】具有远程缓冲存储的 ExtJS 网格无法呈现第一页【英文标题】:ExtJS Grid with Remote Buffered Store Fails to Render First Page 【发布时间】:2013-03-13 08:31:08 【问题描述】:ExtJS 版本:4.1.0
我有一个带有远程缓冲存储的无限滚动网格,声明如下:
Ext.define('App.store.UserGridStore',
extend: 'Ext.data.Store',
autoLoad: true,
buffered: true,
pageSize: 30,
leadingBufferZone:60,
trailingBufferZone:60,
scrollToLoadBuffer:20,
numFromEdge:20,
clearOnPageLoad:false,
isSortable: true,
remoteSort: true,
proxy:
type: 'ajax',
url: 'Service/data',
reader:
type: 'json',
root: 'data',
noCache: true,
successProperty: 'success',
totalProperty: 'total'
);
在有几页行的页面上,当用户一直向下滚动然后返回到第 1 页时,网格会重新呈现除第 1 页之外的所有页面(仅显示空白区域)。
商店似乎正确地向我的后端服务发起了查询,并且该服务返回了正确的数据。但是,数据不会在网格上呈现。
有解决这个问题的方法吗?谢谢。
【问题讨论】:
【参考方案1】:在我将 pageSize 设置为更大的数字 (300) 后,这个问题就消失了。这可能是因为商店由于 pageSize (30) 太低而无法处理太多 AJAX 调用。
【讨论】:
请注意,缓冲存储适用于非常大的数据集。如果您请求的页面数量很少,那是不合适的。 这是非常值得注意的——尽管缓冲网格无法处理一致的页面大小 这是 Ext JS 的失败以上是关于具有远程缓冲存储的 ExtJS 网格无法呈现第一页的主要内容,如果未能解决你的问题,请参考以下文章
store.load 后的 Extjs 网格选择有不正确的数据