Id Name Birthday Age
501 Ultra Puppy Strikes Back 15. 6. 1980 44
502 Itchy Impala 6. 12. 1957 66
503 Dynamite Viking Symphony 16. 12. 1970 53
504 Final Fantasy Dodgeball in the Salad Kingdom 18. 5. 1930 94
505 Neon Bass in the Magic Kingdom 22. 12. 1938 85
506 Scandinavian Desert Attack 10. 8. 1977 47
507 Depressing Karaoke Z 19. 3. 1952 72
508 Prehistoric Fashion Crusader 4. 10. 1991 33
509 Dance Dance Stapler Plus 9. 7. 1986 38
510 Blue-eyed Batfish 13. 3. 1947 77
511 Frightened Flamingo 2. 2. 1945 79
512 Christian Mummy in Busytown 4. 1. 1991 33
513 Wandering Wolf 16. 10. 1996 28
514 Art of Blood DS 18. 6. 1983 41
515 Handsome Hyena 13. 12. 1993 30
516 Geriatric Skate of Doom 10. 8. 1963 61
517 Worried Wombat 5. 2. 1940 84
518 Lair of the Go-Kart Agent 5. 9. 1960 64
519 Tense Turkey 22. 1. 1960 64
520 Royal Underwear Syndicate 11. 11. 1941 83
( Items: 501 - 520 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], true);

	$grid->addColumnText('id', 'Id')
		->setSortable();

	$grid->addColumnText('email', 'E-mail')
		->setSortable()
		->setFilterText();

	$grid->addColumnText('name', 'Name')
		->setFilterText();

	$grid->addColumnDateTime('birth_date', 'Birthday')
		->setFormat('j. n. Y');

	$grid->addColumnNumber('age', 'Age')
		->setRenderer(fn (Row $row): ?int => DateTime::fromSafe($row->asDateTime('birth_date'))?->diff(new DateTime())->y);

	return $grid;
}