o5/grido – ukládání stavu gridu do session

RePRO
Člen | 32
+
0
-

Zdravíčko,

snažím se v komponentě vytvářet následující grid a nastavit mu, aby si ukládal session stav:

public function createComponentUserGrid()
{
  	$grid = new Grid();
	$grid->setFilterRenderType(Filter::RENDER_INNER);
	$grid->setModel(...);
	$grid->setTranslator($this->presenter->translator);
	$grid->setRememberState();
}

Na řádku $grid->setRememberState() to spadne:
Component '' is not attached to 'Nette\Application\UI\Presenter'

Protože v této metodě je na prvním řádku:
$this->getPresenter(); // component must be attached to presenter

Nevíte někdo, jak toto obejít? Předem děkuji za případnou pomoc.

Editoval RePRO (24. 1. 2018 11:52)

CZechBoY
Člen | 3608
+
+1
-

Já to dělám přes registered event

$grid->onRegistered[] = function($grid) {
	$grid->setRememberState();
};

Editoval CZechBoY (24. 1. 2018 12:08)

RePRO
Člen | 32
+
0
-

Funguje spolehlivě, můžu se zeptat, jaké kouzlo je v tomto callbacku? :)

Editoval RePRO (24. 1. 2018 14:58)

Ondřej Kubíček
Člen | 494
+
+1
-

@RePRO ten, že se ten event onRegistered volá až když je komponenta připojená k presenteru