Group actions:
Id Name Birthday Action
489 3D Amish Solid 2. 12. 1986
492 8-Bit Paintball Fiesta 28. 6. 1950
184 8-Bit WWE World 6. 2. 1939
582 A Boy and His Dog Strikes Again 10. 5. 1945
874 Adorable Addax 17. 6. 1931
645 Adorable Anteater 21. 2. 1937
142 Adventurous Aardvark 27. 10. 1945
635 Adventurous Addax 5. 8. 1986
236 Adventurous Albatross 10. 10. 1949
803 Adventurous Angelfish 18. 10. 1996
608 Adventurous Armadillo 8. 1. 1972
655 Adventurous Armadillo 16. 8. 1961
365 Aero Jetski Assault 6. 11. 1942
748 Aero Outlaw of Mystery 10. 9. 1982
242 Aero Shopping Unit 22. 2. 1971
638 Aggressive Alpaca 17. 8. 1987
28 Aggressive Angelfish 12. 3. 1951
165 Aggressive Antelope 9. 11. 1945
627 Agreeable Alligator 8. 6. 1967
338 Agreeable Ant 14. 3. 1943
( Items: 1 - 20 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;
}