Gridito – jak vytvořit odkaz na akci přesenteru s ID položky a změna vzhledu tabulky
- Lukáš Růžička
- Člen | 15
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)
- Lukáš Růžička
- Člen | 15
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,
));
}
?>