Group actions:
Id Name Birthday Action
261 Good Goat 22. 10. 1999
262 Upset Unicorn 6. 8. 1984
263 Nasty Unicorn of the Blood God 23. 6. 1998
264 Virtua Casino Gaiden 27. 5. 1964
265 Profane Trailer Park Extravaganza 18. 3. 1996
266 Obnoxious Oryx 15. 11. 1954
267 Sid Meier Quiz Agent 21. 11. 2000
268 Spirit of the Bow Hunter Dash 8. 7. 2000
269 It a Mad, Mad Wheelchair Dash 25. 1. 1942
270 Gorgeous Gaur 7. 7. 1970
271 Masters of Fantasy Rangers 7. 12. 1961
272 Invisible Badminton Insurrection 24. 9. 1951
273 Comfortable Coyote 4. 9. 1948
274 Cthulhu Lizard Operatives 23. 9. 1976
275 Lazy Louse 2. 5. 1941
276 Mickey Mech Restaurant 5. 3. 1941
277 Prickly Partridge 3. 2. 1997
278 Sleepy Sandpiper 7. 5. 1971
279 Scandinavian Booty Marines 16. 10. 1936
280 Good Goose 25. 12. 1983
( Items: 261 - 280 from 1020 )
  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->setRowCallback(function ($item, $tr): void {
		$tr->addClass('super-' . $item->id);
	});

	$grid->addColumnNumber('id', 'Id')
		->setAlign('start')
		->setSortable();

	$grid->addColumnText('name', 'Name')
		->setSortable();

	$grid->addColumnDateTime('birth_date', 'Birthday');

	$grid->addAction('detail', '', 'this')
		->setIcon('sun')
		->setTitle('Detail');

	$grid->addAction('delete', '', 'delete!')
		->setIcon('trash')
		->setTitle('Delete')
		->setClass('btn btn-xs btn-danger ajax')
		->setConfirmation(
			new StringConfirmation('Do you really want to delete example %s?', 'name')
		);

	$grid->addGroupAction('Delete')->onSelect[] = [$this, 'groupDelete'];

	$grid->allowRowsGroupAction(fn ($item): bool => $item->id % 2 === 0);

	$grid->allowRowsAction('delete', fn ($item): bool => $item->id % 3 === 0);

	$grid->allowRowsAction('detail', fn ($item): bool => $item->id % 4 === 0);

	return $grid;
}