See the code below 👇 or see GitHub
public function createComponentGrid(): DataGrid
{
$grid = new DataGrid();
$grid->setDataSource($this->dibiConnection->select('*')->from('users'));
$grid->setItemsPerPageList([20, 50, 100]);
$grid->addColumnNumber('id', 'Id')
->setAlign('start')
->setSortable();
$grid->addColumnText('name', 'Name')
->setSortable();
$grid->addColumnText('email', 'E-mail')
->setSortable();
$grid->addColumnDateTime('status', 'Status');
$grid->addGroupAction(
'Change user status',
[
'active' => 'Active',
'inactive' => 'Inactive',
'deleted' => 'Deleted',
]
)->onSelect[] = [$this, 'groupChangeStatus'];
$grid->addGroupAction('Send', [
'john' => 'John',
'joe' => 'Joe',
'frank' => 'Frank',
])->onSelect[] = [$this, 'groupSend'];
$grid->addGroupTextAction('Add note')->onSelect[] = [$this, 'groupAddNote'];
$grid->addGroupAction('Delete')->onSelect[] = [$this, 'groupDelete'];
$grid->addGroupButtonAction('Say hello')->onClick[] = [$this, 'sayHello'];
return $grid;
}