Přenos parametrů mezi komponentou a presenterem

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

Mám grid a mám v něm stránkování, řázení, filtrování apod. Pro editaci položky mám zvláštní akci (actionEdit).

Samozřejmě bych po návratu z editace rád měl možnost zobrazit grid zcela stejně (včetně stránky, řazení, …).

Jako možná řešení vidím:

  • grid předá nutné parametry presenteru (ale těch může být i docela dost a to se mi moc nelíbí)
  • grid vytvořím i tam, kde ho nepotřebuji
  • grid uloží parametry jinde než v URL (cookie)
  • namísto action použiji handle

Mé otázky:

  1. Jsou další možnosti?
  2. Je rozumné ovládat třeba i větší editační formulář skrz handle? Co pak např. url? (Když bych chtěl nějak inteligentně odkázat)
  3. Pokud bych využil cookie, tak bych mohl stav gridu ukládat napříč prezentery etc. – to mi přijde dobré. Má to nějaké vážné nedostatky? Např. aby byl grid rovnou odkazatelný, tak bych musel uměle měnit url při načítání parametrů.

Ptám se hlavně na nějakou best practise. Jedná se o rozsáhlejší aplikaci, kde jsou gridy na hodně místech a uživatelé v ní tráví dost času (opravdu s ní pracují, ne jen 4× za den kliknou).

EDIT: Jo a zapomněl jsem, že bych chtěl, aby to mohlo fungovat i ajaxově.

Editoval kedrigern (9. 7. 2013 11:04)

Michal Vyšinský
Člen | 608
+
0
-

Nevím, jestli je to good practise, ale napadlo mě ještě, že by se dalo ve formuláři do hidden inputu nastavit url, ze které se na form přešlo (http_referer) a pak přesměrovávat na url právě z toho inputu.

Jan Suchánek
Člen | 404
+
0
-

Nelze, formulář vůbec netuší o persistentních parametrech jiných komponent.

Lze to řešit jedině ukládáním parametrů nebo ještě lépe signálama (handle), Action zůstane stejná (např.: default) .

Řešíte to jinak?

Editoval jenicek (8. 7. 2013 16:41)

Jan Suchánek
Člen | 404
+
0
-

Nebo jen Session?

peter.z
Člen | 37
+
0
-

A co storeRequest() a restoreRequest()? Nette do nich uklada aj perzistentne parametre komponentov.

Jan Suchánek
Člen | 404
+
0
-

a v případě ajaxového odesílání formuláře to také bude fungovat?

vvoody napsal(a):

https://doc.nette.org/…tore-request

vvoody
Člen | 910
+
0
-

Všetko sa dá

Jan Suchánek
Člen | 404
+
0
-

To jistě, ale také jak nejpohodlněji.

Příklad problému je zde (https://forum.nette.org/…jax-odeslani#…), vždy se tedy při jakémkoliv postu i ajaxovém vyplatí přesměrovávat?

Editoval jenicek (9. 7. 2013 9:14)

kedrigern
Člen | 102
+
0
-

Problematický ḱód je přímo zde: https://api.nette.org/…ter.php.html#… Konkrétně řádek 1134:

  $this->sendResponse(new Responses\ForwardResponse($request));