Add sub grids to your gridfields.

Installs: 235

Dependents: 0

Suggesters: 0

Security: 0

Stars: 3

Watchers: 2

Forks: 2

Open Issues: 0


0.8.0 2018-04-13 16:15 UTC

This package is not auto-updated.

Last update: 2024-04-14 02:56:12 UTC




composer require ucenna/silverstripe-sectioned-gridfield


Sectioned GridField extends the GridField class, albiet with added functionality to allow components to modify//expand grid rows. Configuration is more or less the same between the two.

$fields->addFieldToTab('Root.Regions', SectionedGridField::create(
 new GridFieldConfig_ManyEditor('Items')


GridFieldConfig_ManyEditor is a GridFieldConfig that implements the GridFieldSubGrid component and takes a $has_many or many_many to parse into a child GridField. It can optionally be passed a GridFieldConfig that will be used to parse the child GridField like so: new GridFieldConfig_ManyEditor('Items', new GridFieldConfig_RecordEditor(). If no GridFieldConfig is specified, GridFieldConfig_Min will be used by default.

Example Image


GridFieldSubGrid is a component that opens up a grid's childfield and spreads it out into it's own contained gridfield. It can be added to prebuilt GridFieldConfigs such as GridFieldConfig_Base and GridFieldConfig_RecordEditor or used to create a new GridFieldConfig.

$config->addComponent(new GridFieldSubGrid('Field to Expand'[, GridFieldConfig]));

GridFieldSubGrid takes the name of a field item to expand, and optionally a GridFieldConfig to expand that field item into. If no GridFieldConfig is specified, GridFieldConfig_Min will be used by default.


Is a mini GridFieldConfig designed to work well with GridFieldSubGrid. Alternate GridFieldConfigs can be used in it's place, but they may not be formatted as well.


Currently, GridFieldSubGrid doesn't play nice with sorting and filter components such as GridFieldSortableHeader. Those components are still accessible and still work with GridFieldSubGrid, in fact GridFieldConfig_Min and GridFieldConfig_ManyEditor use them, but their sort and filter functions have been disabled. I may fix them later on if I can figure out a way to implement them.