Group actions:
Id Name Birthday Action
221 Forbidden Pirate Detective 23. 11. 1986
222 Unholy Karate Desperadoes 15. 8. 1986
223 Amused Ant 26. 6. 1957
224 Vast Vulture 1. 10. 2000
225 Japanese Pogo Insurrection 14. 12. 1965
226 Thoughtful Thrush 21. 3. 1992
227 Terrible Toucan 21. 11. 1985
228 American Math Wranglers 23. 6. 1932
229 Shameful Dungeon Romp 18. 7. 1949
230 Glamorous Gull 20. 5. 1962
231 Insane Battleship Island 2. 5. 1955
232 Annoying Aardvark 26. 3. 2000
233 Attractive Addax 28. 10. 1946
234 Weary Catapult Hop-A-Bout 12. 7. 1958
235 Courageous Constrictor 18. 2. 1959
236 Adventurous Albatross 10. 10. 1949
237 Glorious Gnu 26. 3. 1963
238 Full Metal Monkey Rally 11. 11. 1968
239 Big Bird Pirate Corps 23. 10. 1939
240 Frantic Finch 21. 6. 1951
( Items: 221 - 240 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;
}