Group actions:
Id Name Birthday Action
641 Dangerous Kangaroo Party 11. 11. 1947
642 Nasty Narwhal 4. 7. 1937
643 Nice Nightingale 6. 9. 1971
644 Mushy Mole 11. 9. 1938
645 Adorable Anteater 21. 2. 1937
646 Maniac Spatula Tycoon 9. 2. 1932
647 Confused Cheetah 10. 12. 1948
648 Shy Serval 21. 12. 1995
649 Demonic Sex Express 26. 10. 1945
650 Jittery Jay 14. 10. 1930
651 Fisher Price Yeti Dancers 8. 12. 1969
652 Cute Chicken 27. 8. 1960
653 Fair Flatworm 18. 4. 1997
654 Joyous Jackal 7. 6. 1997
655 Adventurous Armadillo 16. 8. 1961
656 Deadly Bazooka Hunter 4. 1. 1966
657 Blissful Amish Combat 17. 2. 1941
658 Fancy Falcon 11. 12. 1947
659 First-Person Katana Task Force 7. 11. 1966
660 Drab Deer 18. 6. 1961
( Items: 641 - 660 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;
}