Group actions:
Id Name Birthday Action
621 Dark Dormouse 24. 8. 1966
622 Naughty Newt 2. 6. 1998
623 Terrible Tuatara 16. 5. 1974
624 Easy Emu 12. 4. 1966
625 Electric Mummy Epidemic 24. 9. 1944
626 Different Dugong 28. 3. 1979
627 Agreeable Alligator 8. 6. 1967
628 Unpleasant Caveman XP 6. 6. 1934
629 Wrong Walrus 19. 2. 1937
630 Arrogant Albatross 11. 7. 1980
631 Barbie Barcode in the Salad Kingdom 19. 6. 1996
632 Anxious Anteater 9. 10. 1995
633 Subatomic Shopping Palace 2. 5. 1938
634 Nighttime Puppy - The Revenge 22. 11. 1993
635 Adventurous Addax 5. 8. 1986
636 Outrageous Oyster 15. 6. 1950
637 Nudist City Man 22. 5. 1970
638 Aggressive Alpaca 17. 8. 1987
639 Elite Llama Tycoon 12. 3. 1969
640 Weary Wren 11. 6. 1938
( Items: 621 - 640 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;
}