【问题标题】:extjs - How to disable pagination on a storeextjs - 如何在商店中禁用分页
【发布时间】:2013-10-16 07:19:05
【问题描述】:

每当商店 (Ext.data.Store) 从服务器读取数据时,它都会在 json 代理或 [page:1, start:0, limit:25] 使用 direct 代理中发送分页参数,例如 &page=1&start=0&limit=25

我想在商店或代理配置中禁用分页。

我找到了这个解决方法,但我确信一定有更好的方法。

proxy: {
    pageParam: undefined,
    startParam: undefined,
    limitParam: undefined,
    ...
}

有人知道如何正确禁用分页吗?

【问题讨论】:

  • 不幸的是,在 Sencha Architect v2.2.2 中创建商店时似乎没有办法应用此解决方法。

标签: extjs pagination extjs4.2


【解决方案1】:

另一个选项是覆盖代理的getParams 方法。这处理分组器、排序器、过滤器、页面、开始和限制参数。 定义在Ext.data.proxy.Server

如果你想禁用所有 Extjs 使用的参数,那么你可以简单地用一个空方法替换它:

proxy: {
    getParams: Ext.emptyFn,
    ...
}

您还可以扩展代理类并覆盖此方法。

【讨论】:

  • 这将禁用所有参数功能。这不是故意的。
  • 您还可以扩展代理类并覆盖此方法,不仅可以使用Ext.emptyFn,还可以使用自定义的getParams 方法
【解决方案2】:
store: {
    pageSize: 0,
    limit:0,
....
}

从请求中排除

页面:__

开始:__

限制:___

【讨论】:

  • 对于我有本地存储代理的商店,我成功使用了store.load({limit: 1})
【解决方案3】:

我设置:

pageSize: 0,

在模型配置中。

【讨论】:

    【解决方案4】:

    要禁用分页,您必须将值设置为空字符串,而不是未定义。像这样:

    pageParam: '',
    startParam: '',
    limitParam: '',
    

    这在 Ext JS 6.2 中适用于我

    【讨论】:

    • undefined 也可以。这对我来说不是一个进步。
    【解决方案5】:

    在商店中设置以下内容:

    {
        defaultPageSize: null
    }
    

    【讨论】:

    • 不,这不起作用。它对分页没有影响。
    猜你喜欢
    • 2012-02-25
    • 2015-02-06
    • 1970-01-01
    • 2012-05-18
    • 2012-09-19
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    相关资源
    最近更新 更多