Id Name Birthday Age
581 Children of the Donkey Arena 24. 9. 1988 36
582 A Boy and His Dog Strikes Again 10. 5. 1945 79
583 Intelligent Catapult Trader 21. 7. 1978 46
584 Big Terrorist Conquest 11. 7. 1977 47
585 Forgotten Pinball Gone Wild 14. 7. 1947 77
586 Envious Elephant 26. 8. 1942 82
587 Amused Albatross 26. 11. 1962 61
588 Amused Albatross 14. 10. 1968 56
589 Omega Sunshine Hell 23. 4. 1976 48
590 Communist Stick Explosion 15. 8. 1943 81
591 Wooden Penguin Slayer 19. 9. 1996 28
592 Little Karaoke Adventure 26. 6. 1963 61
593 John Romero Army Planet 25. 9. 1938 86
594 Combative Constrictor 25. 9. 1982 42
595 Pixellated Flatulence Daredevils 27. 12. 1960 63
596 Bonk Dance Demolition 22. 3. 1945 79
597 Secret of the Vocabulary Wranglers 10. 4. 1961 63
598 Easy Eland 18. 9. 1967 57
599 Sparkling Sheep 4. 9. 1956 68
600 Maniac Software in Middle-Earth 22. 12. 1998 25
( Items: 581 - 600 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;
}