Gridito – jak vytvořit odkaz na akci přesenteru s ID položky a změna vzhledu tabulky

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Lukáš Růžička
Člen | 15
+
0
-

Ahoj,
začal jsem používat Gridito od Jana Marka a rád bych u každé položky vytvořil odkaz směřující na její editování (akce presenteru + id).
Koukal jsem i na demo, ale tam všechna tlačítka volají Ajaxové fce. Já potřebuji pouze odkaz (presenter:akce:idPolozky).

Zatím mámo toto:

<?php
protected function createComponentMotivyGrid($name){;
        $model=new \MotivyGriditoDibiModel(\dibi::getConnection());

        $grid = new \Gridito\Grid($this, $name);
        $grid->setItemsPerPage(10);

        $kategorie = $this->getParam("kategorie");
        if($kategorie){
            $model->filterKategorie($kategorie);
        }

        $search = $this->getParam('nazev', false);
        if ($search) {
            $model->filterSearch($search);
        }

        $grid->setModel($model);

        // columns
        $grid->addColumn('id', 'ID')->setSortable(true);
        $grid->addColumn('nazev', 'Název')->setSortable(true);
        $grid->addColumn('nazevKategorie', 'Kategorie')->setSortable(true);

    }
?>

Potřebuji tedy (alespoň myslím) něco ve smyslu:

<?php
	$grid->addButton('editovat', "Editovat", array(
            'link' => $this->link('Motivy:editovatMotiv:id')

)
?>

Změna vzhledu tabulky

A abych nemusel zakládat nové téma, mám ještě maličkost ohledně datagridu.

Jak nastavím vlastní pozadí TH prvku tabulky Gridita?
Linkují se mi tam obrázky z umístění:
http://ajax.googleapis.com/…/1.8/themes/
a i když nastavím v CSS background-image z vlastního umístění, Gridito to ignoruje (narozdíl od TD prvků, které si mohu v css nastylovat, jak se mi zlíbí).

Díky za odpovědi.

Lukáš Růžička

Editoval Lukáš Růžička (6. 10. 2011 15:07)

MW
Člen | 626
+
0
-

viz Dokumentace

$this->link('Motivy:editovatMotiv', $id);
Lukáš Růžička
Člen | 15
+
0
-

Obecné tvorbě odkazu rozumím. Pouze jsem se upsal.
Mě jde především o to, jak tento odkaz zkloubit s griditem.

Vytvořil jsem následující kód (pouze jako test). Sloupeček se mi do gridita přidá, ale je prázdný. Btw raději bych přidával odkaz přes addButton, než mít na každou akci nový slupeček (při použití addColumn).

<?php
protected function createComponentMotivyGrid($name){;
        $model=new \MotivyGriditoDibiModel(\dibi::getConnection());
        $presenter = $this;

        $grid = new \Gridito\Grid($this, $name);
        $grid->setItemsPerPage(10);

        $kategorie = $this->getParam("kategorie");
        if($kategorie){
            $model->filterKategorie($kategorie);
        }

        $search = $this->getParam('nazev', false);
        if ($search) {
            $model->filterSearch($search);
        }

        $grid->setModel($model);

        // columns
        $grid->addColumn('id', 'ID')->setSortable(true);
        #$grid->addColumn('nazev', 'Název')->setSortable(true);
        $grid->addColumn('nazevKategorie', 'Kategorie')->setSortable(true);
        $grid->addColumn("nazev", "Jméno", array(
            "renderer" => function ($row) use($presenter) {
               $presenter->link('Motivy:editMotiv', array( 'id' => $row->id));
            },
            "sortable" => true,
        ));
    }
?>
Ot@s
Backer | 476
+
0
-
$grid->addButton("edit", "Editovat", array(
  "link" => function ($row) use ($grid) {
    return $grid->presenter->link('Motivy:editMotiv',array('id'=>$row['id']));
  },
));
Lukáš Růžička
Člen | 15
+
0
-

Tohle jsem měl přesně na mysli. Funguje perfektně.

Díky!