DataGrid a prefilter – zapomíná proměnnou z template po filtrování v něm samém

krust
Člen | 14
+
0
-

Ahoj, mám dotaz. Používám ublaboo datagrid, který prefiltruji přes ajax. Konkrétně mám X tlačítek, každé s nějakým atributem a klik na každý z nich volá $.nette.ajax, kde změní nějakou template->XXX a zavolá redrawControl. Což funguje skvěle, tedy do doby, než začnu v „prefiltrovaném“ gridu hledat, stránkovat apod., to se pak grid chová, jako by na tu template proměnnou zapomněl. Jak na to? Tuhle zapamatovanou šablonovou proměnnou bych rád využil i jinde :-)
např.:

    public function createComponentModalGrid($name)
    {
      if($this->template->modalGridTable == ""){
        $datasource = [];
      } else{
        $datasource = $this->model->getTable($this->template->modalGridTable)->select("*");
      }
      $grid = new DataGrid($this, $name);
      $gridLang = "gridTranslator_".$this->lang;
      if($this->$gridLang != null){
        $grid->setTranslator($this->$gridLang);
      }

      $grid->setDataSource($datasource);
      $grid->addColumnText('name', 'Název')->setSortable()->setFilterText();
      $grid->addGroupButtonAction('Přiřadit')->onClick[] = [$this, 'testFunc'];

      return $grid;
    }

    public function handleRenderDynamicTable($table = ""){
      $this->template->modalGridTable = $table;
      $this->redrawControl("modalGrid");
    }

Kamil Valenta
Člen | 758
+
+1
-

Ten atribut, který ovlivňuje datasource, musíš mít jako persistent.