DataGrid, rememberState nefunguje
- jchorvat
- Člen | 12
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.
- marek.dusek
- Člen | 99
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
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);
?>