【问题标题】:Silverstripe Modeladmin: Gridview pagination - change items per pageSilverstripe Modeladmin:Gridview 分页 - 每页更改项目
【发布时间】:2018-03-18 17:22:53
【问题描述】:

我是第一次使用 Silverstripe,并进行了大量研究。尽管我找到了一些有关它的信息,但我无法完成一件事。我正在使用带有 3 个数据对象的 Modeladmin,例如。客户、合同、合同类型。目前分页设置为每页 15 个项目。但是,对于我的所有数据对象,我希望每页只看到 8 个项目。有没有办法做到这一点,而不必为我的所有数据对象扩展 Page 类?

非常感谢。

【问题讨论】:

  • 您希望每个选项卡显示 8 个相关数据对象的项目,还是希望一个包含 8 个项目的三个数据对象混合的列表?

标签: gridview silverstripe modeladmin


【解决方案1】:

您可以使用配置 API 或 YAML 语法将 default_items_per_page 设置为 8,在使用 GridFieldPaginator 组件创建 GridField 且不设置其自己的页面大小的所有情况下都将采用该语法。

请注意,ModelAdmin 是一个示例,它确实设置了自己的页面长度(在Simon's answer 中描述),因此您还需要设置该配置属性。

您正在使用的代码的其他部分(其他 SilverStripe 模块)可能正在设置页面大小而不让用户配置它们,但这应该可以解决您的大多数情况。

# File: mysite/_config/config.yml
ModelAdmin:
  page_length: 8
GridFieldPaginator:
  default_items_per_page: 8

或在 _config.php 文件中:

Config::inst()->update('ModelAdmin', 'page_length', 8);
Config::inst()->update('GridFieldPaginator', 'default_items_per_page', 8);

【讨论】:

    【解决方案2】:

    在您的 ModelAdmin 类中,您可以设置页面长度,例如: private static $page_length = 5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多