Maslosoft Framework Documentation
Flexible Application Foundation
Tree Grid
Tree grid is a hibrid between Action Tree and Grid View
This allows displaying tree structure along with additional columns containing attributes or actions.
In example below drag'n'drop is enabled, tree nodes can be moved around by
dragging by icon.
Notice that tree grid uses DataProvider
not DataProvider
like Action Tree.
The TreeGrid is very similar to Grid View, including column renderers and configuration for custom renderers
Title | Published |
---|---|
|
echo TreeGrid::widget([ 'dataProvider' => new DataProvider(new PageItemTree), 'nodesField' => 'title', 'dnd' => true, 'columns' => [ 'title', 'published' ] ]);
Initialization types
By dataProvider
Most obvious initialization of TreeGrid
is by passing
DataProvider
to $dataProvider
. This will ensure
that data is reloaded on remote action forwarding.
This means that grid might reset on remote actions
When parameter $model
is provided along with
$dataProvider
, TreeGrid
will update
property children
of $model
with actual tree state before sending
AJAX request.
Use this kind of initialization when:
- Displaying data
- Need to update grid state via forwarded remote actions
- When using drag and drop without forwarded remote action
- Working with data provider
By model
When property $model
is set, TreeGrid
expects
model with children
property, containing tree
structure. With this kind of initialization, grid state will
be persisted on remote actions.
Grid will not be updated on forwarded remote actions
Use this kind of initialization when:
- Working with drag and drop tree and remote actions
- Forwarded remote actions might be called while working on structure
- Working with model