具有远程缓冲存储的 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 网格无法呈现第一页的主要内容,如果未能解决你的问题,请参考以下文章

新添加的行不能拖放到 extjs 网格面板中

store.load 后的 Extjs 网格选择有不正确的数据

Extjs 小部件标签字段无法在远程存储列表中设置选定值

当我重新加载网格和存储时,extjs 缓存具有相同名称的图片

ExtJs 4.1.0 缓冲网格 + 本地排序/过滤

ExtJS4 网格不会更新远程数据库