Datagrid – addCellsTemplate()

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kikinet
Člen | 35
+
0
-

Zdravím,

přijde mi, že je strašně málo informací ohledně datagridu, nějaké ukázky, vysvětlení jednotlivých metod apod. Bojuju už od začátku s addCellsTemplate() metodou.
Mám v presenteru:

public function createComponentUserDataGrid()
	 {
		$grid = new Nextras\Datagrid\Datagrid;
		$grid->addColumn('username');
		$grid->setDataSourceCallBack(function($filter, $order) {
		    $selection = $this->database->table('users')->where('users_is_active', '1')->select('users_name');

		    return $selection;
		});

		$grid->addCellsTemplate('./cells.latte');

		return $grid;
	 }

A hlásí mi to neustále: Cells template './cells.latte' does not exist. .
Tak pro začátek, kde to má být uložené? Mám to v presenters/templates/User/cells.latte, presenter v presenters/UserPresenter.php .

Jakékoliv připomínky nebo odkazy na info k datagridu uvítám (kromě github.com/nextras). Díky.

Unlink
Člen | 298
+
+1
-

Tá cesta musí byť relatívna od presentra.
Ak máš presenter v presenters/UserPresenter.php a template v presenters/templates/User/cells.latte
tak skús $grid->addCellsTemplate(__DIR__ . '/templates/User/cells.latte');

Editoval Unlink (3. 4. 2015 22:56)

kikinet
Člen | 35
+
0
-

Vyzkoušeno, píše to to samé :/ včetně ostatních X kombinací cest.

Unlink
Člen | 298
+
0
-

Tak skús ešte takto
$grid->addCellsTemplate(__DIR__ . '/templates/User/cells.latte');

kikinet
Člen | 35
+
0
-

Super funguje, děkuji :) Ještě se zeptám na jednu věc. Data, které chci zobrazit v datagridu musím poslat v proměnné do template, nebo to nějak přímo „umí“ datagrid?

wassy
Člen | 46
+
0
-

Data které chceš aby se ti v gridu zobrazovala jsou závislá na sloupcích, tzn když máš $grid->addColumn('username'); budeš mít tabulku která bude vypisovat řádky z tvého sourcu a sloupec ‚username‘ pokud chceš další dáš prostě $grid->addColumn('dalsi_sloupec_z_databaze); a nebo pokud chceš použít nějaký komplexnějsí sloupce tak použij $grid->addColumn('mul_slozeny_sloupec'); a v cellsTemplate si pak definuj

{define col-muj_slozeny_sloupec}
<td>{$row->jmeno} {$row->prijmeni}</td>
{/define}

promena $row se do sablony preda automaticky

kikinet
Člen | 35
+
0
-

Aha, ušlo mi, že je to v proměnné $row. Děkuji :)