AJAXové refreshnutí datagridu

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

Zdravím programátory!
Tak už nějakou tu hoďku se peru s ajaxem a datagridem a teď jsem se zasekl.
K datagridu používám facebox(jestli zná někdo lepší rád si nechám proradit :)) – Při kliknutí na edit mi vyskočí malé ajaxové okno s formulářem, změním a dám odeslat, systém to zpracuje, uloží do DB atd. a teď potřebuju refreshnout datagrid.
Podotýkám, že všechno je v ajaxu.
Vím, že mi stačí například vytvořit nějakej link, který mi zavolá metodu s invalidací datagridu – jenže v tom případě potřebuju v tom odkazu nějak předávat i „state“ datagridu(filtery apod., což se taky předává ajaxem při volání filtrace), aby se mi to nezrušilo.

Je nějak možné toho docílit, že se mi prostře „jen“ refreshne tabulka?
Budu moc vděčný za jakoukoli pomoc, TrubiT

Honza Kuchař
Člen | 1662
+
0
-

Hledej invalidateControl(). To zavolej nad data gridem.

srigi
Nette Blogger | 558
+
0
-

Zistí si či ten facebox má nejaký JS event pri „odoslaní“ hodnoty. Na ten event potom iba nabinduj callback, ktorý zavolá signál, ktorý ti invaliduje datagrid.

TrubiT
Člen | 10
+
0
-

Ano to vím.
Jenže já potřebuji spolu s tím signálem poslat i všechny parametry datagridu(filtrování, strana, …), aby mi to vrátilo tabulkou, kterou jsem si předem ofiltroval, protože jinak to vrátí defaultuní tabulku :)
A právě to nevím jak, jak získat potřebné parametry z toho datagridu a pak je poslat.
Díky :)

Ještě jeden dotaz, invalidace může proběhnout jen tehdy, když volám signál dané action? nemůžu volat jinou action?

Editoval TrubiT (19. 5. 2010 11:46)

TrubiT
Člen | 10
+
0
-

Po delším zkoumání trochu zobecním dotaz:
Mám prezenter obsahující dvě různé komponenty. Jedna je třeba snippet flashes a druhá formulář. Při submitu formuláře napíšu flashMessage a teď chci, aby se mi ta zpráva zobrazila, jak na to?

Honza Kuchař
Člen | 1662
+
0
-

$this->invalidateControl(„nazevSnippetu“); To dej do presenteru při odeslání formuláře.

TrubiT
Člen | 10
+
0
-

A bude to fungovat i když je formulář výstup actionEdit a snippet, který potřebuju invalidovat výstup actionDefault?

Honza Kuchař
Člen | 1662
+
0
-

Pokud mají společnou šablonu, tak ano. Resp. stejný název. Podívej se do Firebugu, co ti odpovídá server a hned ti to bude jasnější.

Editoval Honza Kuchař (21. 5. 2010 16:07)