ucenna / silverstripe-sectioned-gridfield
将子网格添加到您的网格字段。
Requires
- silverstripe/cms: ^4.0
- silverstripe/framework: ^4.0
This package is not auto-updated.
Last update: 2024-09-29 05:31:57 UTC
README
需求
安装
composer require ucenna/silverstripe-sectioned-gridfield
使用
Sectioned GridField 扩展了 GridField 类,尽管添加了一些功能,允许组件修改/扩展网格行。配置在两者之间基本相同。
$fields->addFieldToTab('Root.Regions', SectionedGridField::create( 'Regions', 'Region', $this->Regions(), new GridFieldConfig_ManyEditor('Items') ));
GridFieldConfig_ManyEditor
GridFieldConfig_ManyEditor 是一个实现了 GridFieldSubGrid 组件的 GridFieldConfig,它接受一个 $has_many 或 many_many 以解析为子 GridField。它可以可选地传递一个用于解析子 GridField 的 GridFieldConfig,如下所示:new GridFieldConfig_ManyEditor('Items', new GridFieldConfig_RecordEditor())。如果没有指定 GridFieldConfig,则默认使用 GridFieldConfig_Min。
GridFieldSubGrid
GridFieldSubGrid 是一个组件,它打开网格的子字段并将其展开为其自己的容器网格字段。它可以添加到预构建的 GridFieldConfigs,例如 GridFieldConfig_Base 和 GridFieldConfig_RecordEditor,或用于创建新的 GridFieldConfig。
$config->addComponent(new GridFieldSubGrid('Field to Expand'[, GridFieldConfig]));
GridFieldSubGrid 接收要展开的字段项目名称,并可选地接收一个用于展开该字段项目的 GridFieldConfig。如果没有指定 GridFieldConfig,则默认使用 GridFieldConfig_Min。
GridFieldConfig_Min
是一个小型 GridFieldConfig,旨在与 GridFieldSubGrid 一起很好地工作。可以使用其他 GridFieldConfigs 替换它,但它们可能不会格式化得很好。
限制
目前,GridFieldSubGrid 与排序和筛选组件(如 GridFieldSortableHeader)不兼容。这些组件仍然可以访问并且仍然与 GridFieldSubGrid 一起工作;实际上,GridFieldConfig_Min 和 GridFieldConfig_ManyEditor 使用它们,但它们的排序和筛选功能已被禁用。如果我可以想出一种实现它们的方法,我可能会稍后修复它们。
