Id Name Birthday Age
141 Silent Harpoon Saloon 13. 2. 1995 29
142 Adventurous Aardvark 27. 10. 1945 79
143 Disney Bingo - The Dark Project 17. 12. 1943 80
144 Unsightly Unicorn 15. 6. 1989 35
145 Prickly Parrot 20. 11. 1990 34
146 Colorful Corncrake 3. 2. 1953 71
147 Distinguished Bungie in the Middle East 27. 8. 1942 82
148 Sinister Banana Interactive 24. 8. 1988 36
149 Shrunken Dentist Preacher 12. 6. 1978 46
150 Everybody Hates the Dungeon Massacre 11. 1. 1964 60
151 Enchanting Eland 2. 9. 1986 38
152 Obedient Ostrich 8. 2. 1959 65
153 Surprise Afro Palace 13. 10. 1941 83
154 Homeless Hedgehog 19. 11. 1959 65
155 Unforgettable Bazooka Revisited 4. 2. 1964 60
156 Better Badger 2. 10. 1983 41
157 Religious Trailer Park EX 6. 7. 1978 46
158 Quiet Cyborg Smash 25. 5. 1996 28
159 Crazy Capuchin 25. 2. 1992 32
160 Fragile Flamingo 6. 5. 1995 29
( Items: 141 - 160 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;
}