Sencha Touch List Paging: 限制店铺记录数

Posted

技术标签:

【中文标题】Sencha Touch List Paging: 限制店铺记录数【英文标题】:Sencha Touch List Paging: limit number of record of the store 【发布时间】:2013-07-08 06:49:30 【问题描述】:

我在我的应用程序中使用 Sencha Touch List (xtype: list) 和 listPaging 插件。 通过设置autopaging: true,它就像创造无限效果的魅力。

但是,我的问题是,如何将商店的记录(或列表中的行)保存为某个数字,例如 50 条记录。

因此,当用户向下滚动时,自动加载下一页,同时删除上一个(当前)页面,并在向上滚动时加载上一页。

目标是限制商店的记录数量,因为如果它全部加载(通过继续向下滚动),它会使设备崩溃(在 Ipad 上测试)。

有道理,我在 db 上有 40k 条记录。

【问题讨论】:

你找到解决办法了吗? 我认为 listPaging 插件在这种情况下不会帮助你。您需要扩展它的功能以具有底部和 top “加载更多”标签和处理程序,因为如果您在向下滚动时清除一些数据,当您开始向上滚动时,您将需要重新加载该数据. 狩猎,不,还没有解决方案。 @pckill,我尝试基于 listPaging 构建插件,但事情搞砸了。到处都是错误。 【参考方案1】:

昨天我正在做类似的事情,但只是使用下一个功能。

您可以重写动态加载新页面的方法。就是loadNextPage(),在请求下一页之前加上store.removeAll()。

在您的列表中:

plugins: [
    
        type: 'listpaging',
        autoPaging: true,
        noMoreRecordsText: null,
        loadMoreText: null,
        loadNextPage: function() 
            var me = this;
            if (!me.storeFullyLoaded()) 
                me.getList().getStore().removeAll();
                me.getList().setMasked(true);
                me.getList().getStore().nextPage( addRecords: true );
            
        
    
]

这仅适用于下一个,对于上一个可能会稍微复杂一些,但也许这可以提供一个想法。可能会在列表顶部添加另一个 cmp 触发 store.previousPage()

希望对你有帮助-

【讨论】:

以上是关于Sencha Touch List Paging: 限制店铺记录数的主要内容,如果未能解决你的问题,请参考以下文章

如何设置行高 Sencha Touch List

选项卡式工具栏内的 Sencha Touch List 组件

使用 store sencha touch 2 将数据加载到 List

如何使 dataview.list 在 Sencha Touch 2 中可见?

在 Sencha Touch 2 上尝试一个简单的 List 示例,我得到“Uncaught TypeError”

Sencha Touch:DataView 上看起来像 List Group Header 的组件