Group actions:
Id Name Birthday Action
981 Dwarven Bomberman Showdown 7. 7. 1942
982 Sleepy Stoat 10. 5. 1941
983 Busy Buzzard 24. 5. 1972
984 Calm Caterpillar 25. 12. 1979
985 M.C. Escher Bass Thieves 21. 9. 2000
986 My Little Punching vs. The Space Mutants 2. 7. 1998
987 The Muppets Computer EX 9. 6. 1932
988 Rad Bandicoot on Wheels 1. 2. 1973
989 God of Ninja Spree 8. 7. 1968
990 Filthy Fly 16. 1. 1977
991 Anxious Anteater 17. 1. 1952
992 Infinite Biplane in the Desert 18. 12. 1970
993 Smiling Seahorse 16. 2. 1947
994 Brave Beetle 23. 4. 1996
995 Testy Tern 13. 7. 1943
996 Modern Moth 21. 10. 1989
997 Faithful Ferret 2. 7. 1944
998 Helpless Hawk 28. 5. 1954
999 Enraged Internet Base 24. 2. 1998
1 000 Wide-eyed Warbler 18. 12. 1977
( Items: 981 - 1000 from 1000 )
  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('left')
		->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(function ($item): bool {
		return $item->id % 2 === 0;
	});

	$grid->allowRowsAction('delete', function ($item): bool {
		return $item->id % 3 === 0;
	});

	$grid->allowRowsAction('detail', function ($item): bool {
		return $item->id % 4 === 0;
	});

	return $grid;
}