无限滚动网格和MVC

时间:2012-04-26 04:19:05

标签: javascript extjs

假设我们遵循原始文章http://www.sencha.com/learn/the-mvc-application-architecture并拥有此类商店:

Ext.define('AM.store.Users', {
    extend: 'Ext.data.Store',
    model: 'AM.model.User',
    autoLoad: true,

    proxy: {
        type: 'ajax',
        url: 'data/users.json',
        reader: {
            type: 'json',
            root: 'users',
            successProperty: 'success'
        }
    }
});

我们决定实现无限滚动网格。为此,我们需要删除autoLoad: true并手动调用store.guaranteeRange(...)

这样做最好的地方是什么?

2 个答案:

答案 0 :(得分:1)

渲染网格的地方。您可以覆盖afterRender()方法,或者如果它是模态网格/对话框 - 在显示之前加载商店。

夫妻旁注(我试图指出所有商店autoLoad通常都是false

  • 如果您将在您的应用程序中使用任何身份验证 - 您 必须在所有商店禁用autoLoad
  • 如果你有超过几个商店(比如5-10 +?),强烈建议你禁用它。您不希望在应用程序启动时同时加载所有这些文件。
  • 您经常需要保证在加载商店后发生了某些事情,然后再次禁用autoLoad,订阅加载事件并手动load()商店。

答案 1 :(得分:1)

Ext.define('AM.store.Users', {
    extend: 'Ext.data.Store',
    model: 'AM.model.User',
    autoLoad: true,
    remoteSort: true,
    buffered: true,
    pageSize: 100,
    proxy: {
        type: 'ajax',
        url: '/postdata/list',
        limitParam: 'size',
        startParam: undefined,
        reader: {
            type: 'json',
            root: 'data',
            successProperty: 'success'
        }
    }
});

在这里演示http://ext4all.com/post/extjs-4-1-grid-infinite-scroll-in-mvc