Group actions:
Id Name Birthday Action
341 Inappropriate Arcade Armada 9. 8. 1947
342 Dwarven Fun Fight Club 12. 10. 1949
343 Nutty Newt 16. 8. 1993
344 Tense Tuatara 1. 4. 1952
345 Brainy Buffalo 17. 2. 1991
346 College Devil from Planet X 5. 3. 1980
347 Gentle Gibbon 9. 10. 1934
348 Allied Dodgeball - The Next Generation 11. 9. 1961
349 Crowded Crab 16. 7. 1981
350 Enchanting Eagle 28. 2. 1951
351 Wicked Weasel 24. 9. 1973
352 Sore Sloth 6. 7. 1941
353 Peaceful Sewer Smash 7. 3. 1999
354 Peaceful Chess Party 6. 8. 1973
355 Nasty Narwhal 4. 10. 1935
356 Bloody Booty Trader 9. 3. 1993
357 Weary Breakdancing II 7. 1. 1967
358 Exuberant Eel 13. 12. 1983
359 Nutty Newt 10. 1. 1980
360 Aquatic Katana Bandits 9. 2. 1980
( Items: 341 - 360 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;
}