Pomoc s DataGridem

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

Dnes jsem se konečně odhodlal rozběhnout DataGrid. Po chvilce bojování se povedlo, nastavil jsem si ho jakž takž k obrazu svému a teď bych potřeboval drobnost (ono je to vlastně to nejdůležitější :-)).

Je možné nějak na celý řádek nastavit odkaz? Používám DG pro výpis databáze a potřeboval bych po kliknutí na řádek odkázat nějak takto App:default $id. Snažil jsem se hledat na fóru, ale nějak se mi nepovedlo nic najít. Jde toto nějak jednoduše? Teoreticky by i stačilo přidat sloupec s čudlíkem, na kterém by byl tento odkaz, to už bych nějak překousl, jenom nevím, jak do DG poslat (nebo spíš získat, předpokládám, že tam data z SQL dotazu někde budou) nějaká data. A ještě ideálněji, kdyby šlo hodit odkaz v podobném duchu na všechny sloupce.

toka
Člen | 253
+
0
-

Pokud bys chtěl odkaz třeba na jeden sloupec, tak lze udělat takto:

// V DataGridu na sloupec, který obsahuje odkaz, nastavit
$grid['odkaz']->formatCallback[] = array($this, 'createLink');

A pak v presenteru:

public function createLink($value, DibiRow $data) {
  return Html::el('a')->href($value)->setText('Klikněte');
}
Kenn
Člen | 110
+
0
-

Díky, to vypadá jako mocný nástroj.

Teď ještě dotaz, jak poslat do DG parametr? Chtěl bych ho napojit na vyhledávací formulář, popřípadě na menu s kategoriema. Teď formulář přesměrovávám na Search presenter, ale chtěl bych, aby se vyhledávaný dotaz poslal do DG jako by uživatel nastavil filtr pro daný sloupec.