Group actions:
Id Name Birthday Action
741 Unpleasant Fencing Epidemic 15. 5. 1977
742 Space Music Underworld 14. 12. 1961
743 Day of the Chase Strikes Again 12. 10. 1934
744 Screaming Lawnmower School 2. 12. 1976
745 Worried Wryneck 12. 6. 1995
746 Victorious Vicuña 11. 4. 1992
747 Third-World Dog Smash 28. 11. 1981
748 Aero Outlaw of Mystery 10. 9. 1982
749 Street STD Summit 13. 4. 1965
750 Happy Batman Roundup 10. 4. 1942
751 Perfect Piranha 27. 9. 1930
752 Colorful Constrictor 4. 1. 1961
753 Hurt Hedgehog 17. 6. 1946
754 Shameful Sunshine III 24. 3. 1990
755 Unusual Unicorn 24. 8. 1963
756 Thankful Tern 16. 2. 1948
757 Fruity Acid Revisited 28. 7. 1947
758 Talented Teira 3. 8. 1937
759 My Very Own Army Forever 25. 2. 1957
760 Vast Vicuña 20. 8. 2000
( Items: 741 - 760 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;
}