# Contributte\datagrid-nette-database-data-source

# Content

# Usage

/** * @var Nette\Database\Context * @inject */ public $ndb; public function createComponentNetteGrid($name) { /** * @type Ublaboo\DataGrid\DataGrid */ $grid = new DataGrid($this, $name); $query = 'SELECT p.*, GROUP_CONCAT(v.code SEPARATOR ", ") AS variants	FROM product p	LEFT JOIN product_variant p_v	ON p_v.product_id = p.id	WHERE p.deleted IS NULL	AND (product.status = ? OR product.status = ?)'; $params = [1, 2]; /** * @var Ublaboo\NetteDatabaseDataSource\NetteDatabaseDataSource * * @param Nette\Database\Context * @param $query * @param $params|NULL */ $datasource = new NetteDatabaseDataSource($this->ndb, $query, $params); $grid->setDataSource($datasource); $grid->addColumnText('name', 'Name') ->setSortable(); $grid->addColumnNumber('id', 'Id') ->setSortable(); $grid->addColumnDateTime('created', 'Created'); $grid->addFilterDateRange('created', 'Created:'); $grid->addFilterText('name', 'Name and id', ['id', 'name']); $grid->addFilterSelect('status', 'Status', ['' => 'All', 1 => 'Online', 0 => 'Ofline', 2 => 'Standby']); /** * Etc */ } 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53