我是第一次使用 Silverstripe 并且一直在做很多研究。尽管我找到了一些有关它的信息,但我无法完成一件事。我正在使用带有 3 个数据对象的 Modeladmin,例如。客户、合同、合同类型。目前分页设置为每页 15 个项目。但是,对于我的所有数据对象,我希望每页只看到 8 个项目。有没有办法做到这一点,而不必为我的所有数据对象扩展 Page 类?
非常感谢。
我是第一次使用 Silverstripe 并且一直在做很多研究。尽管我找到了一些有关它的信息,但我无法完成一件事。我正在使用带有 3 个数据对象的 Modeladmin,例如。客户、合同、合同类型。目前分页设置为每页 15 个项目。但是,对于我的所有数据对象,我希望每页只看到 8 个项目。有没有办法做到这一点,而不必为我的所有数据对象扩展 Page 类?
非常感谢。
您可以default_items_per_page
使用配置 API 或 YAML 语法将 设置为 8,这将在使用 GridFieldPaginator 组件创建 GridField 并且不设置其自己的页面大小的所有情况下都适用。
请注意,ModelAdmin 是一个设置自己的页面长度的示例(在Simon 的回答中描述),因此您还需要设置该配置属性。
您正在使用的代码的其他部分(其他 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);
在您的 ModelAdmin 类中,您可以设置页面长度,例如:
private static $page_length = 5