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