Grid¶
-
class
phpctrl\ui\Grid¶
If you didn’t read documentation on Table you should start with that. While table implements the actual data rendering, Grid component supplies various enhancements around it, such as paginator, quick-search, toolbar and others by relying on other Controls.
Using Grid¶
Here is a simple usage:
$layout->add('Grid')->setModel(new Country($db));
To make your grid look nicer, you might want to add some buttons and enable quicksearch:
$grid = $layout->add('Grid');
$grid->setModel(new Country($db));
$grid->addQuickSearch();
$grid->menu->addItem('Reload Grid', new \phpctrl\ui\jsReload($grid));
Adding Quick Search¶
After you have associated grid with a model using View::setModel() you can
include quick-search component:
$grid->addQuickSearch(['name', 'surname']);
If you don’t specify argument, then search will be done by a models title field. (model.html#title-field)
Paginator¶
Grid comes with a paginator already. You can disable it by setting $paginator property to false. You can use $ipp to specify different number of items per page:
$grid->ipp = 10;
Actions¶
Table supports use of TableColumnActions, which allows to display button for each row.
Calling addAction() provides a useful short-cut for creating column-based actions.
Selection¶
Grid can have a checkbox column for you to select elements. It relies on TableColumnCheckbox, but will
additionally place this column before any other column inside a grid. You can use TableColumnCheckbox::jsChecked()
method to reference value of selected checkboxes inside any Actions:
$sel = $grid->addSelection();
$grid->menu->addItem('show selection')->on('click', new \phpctrl\ui\jsExpression(
'alert("Selected: "+[])', [$sel->jsChecked()]
));
Sorting¶
When grid is associated with a model that supports order, it will automatically make itself sortable. You can override this behaviour by setting $sortable property to true or false.
Additionally you may set list of sortable fields to a sortable property if you wish that your grid would be sortable only for those columns.
See also Table::$sortable.