DataGrid, rememberState nefunguje

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

Neviem preco, ale nefunguje mi to.

Nastavim $rememberState = TRUE a skusim nieco napisat do filtra. Prekliknem sa na inu stranku a ked sa vratim, tak filter je prazdny. Ale ked kliknem na „Reset state“ tak sa filter vyplni…

Nemal by sa vyplnit hned a po kliknuti na „Reset state“ zmazat? Co mam zmenit alebo nastavit?

Dakujem za radu.

jchorvat
Člen | 12
+
0
-

To som vazne jediny komu to nefunguje?

Fakt budem vdacny za kazdu radu, uz som zufaly…

marek.dusek
Člen | 99
+
0
-

Zapamatování v DataGridu funguje IMHO divně, protože se zapamatuje _aktuální_ filtrování/stárnkování/atp. namísto _výchozího_ … pak se mi proto stávalo, že jsem otevřel grid v nějakém stavu, ten se mi uložil do sessny a nešlo se ho nijak zbavit. Možná je to totéž, možná ne, každopádně podívej se na metody restoreState() a rememberState() a dumpuj si, co kde máš uloženo (takové to init… a current…)

jchorvat
Člen | 12
+
0
-

Zatial som to vyriesil tak, ze som odstranil porovnavanie parametrov v metode loadState.

Vyzera to, ze to funguje. Aj default filtering funguje. Uvidim, casom co sa (ak sa) pokazi…

Mozno to niekomu pomoze:

<?php

if ($this->rememberState) {
			$session = $this->getStateSession();

	if (!isset($session->currentState)) {
		$session->currentState = $session->initState;
	}

	if (isset($session->currentState)) {
		$cs = $session->currentState;
		$is = $session->initState;

		foreach ($cs as $key => $value) {
			$params[$key] = $value;
		}
	}
}
parent::loadState($params);

?>
fak
Člen | 48
+
0
-

můžu potvrdit že to pořád nefunguje!