Gridito- odkazy na jine presentery

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
gerades
Člen | 40
+
0
-

Zdravim, mam nasledujici kod:

class Tabulka extends Grid {
  private $customerId;
  // variables ...
  public function __construct($customerId,  // parameters....
        $dataSource = // get datasource
        $this->setModel(dataSource);
        $this->setItemsPerPage($this->itemsPerPage);
        $this->addColumn("Id", "Id")->setSortable(true);

        $this->addButton("detail", "Detail", array(
            // ??? link s Id zaznamu a $customerId
            "handler" => function ($row) use ($presenter, $customerId) {
                $presenter->redirect("ItemDetail:default",
                        array(
                            'itemid' => $row->Id,
                            'customerid' => $customerId
         ));
  }
}

Snazim se vytvorit odkaz, ktery by me presmeroval na jineho presentera. Ten by zobrazil detail zaznamu v tabulce. Coz znamena, ze musi byt v odkazu ID zaznamu. Co vice, je potreba aby se preposlali nejake dalsi udaje. Napriklad $customerId.

Pridal jsem dosavadni (nefunkcni kod)… customerId je v pohode, problem je s itemid, to neni naplneno dle ocekavani… :-/

Editoval gerades (6. 2. 2011 20:22)

gerades
Člen | 40
+
0
-

Kdyz to shrnu, tak nevim kde se bere $row. Musim pro to jeste neco udelat? Jestli ano, tak co to je? To jsem nidke nenasel a ani me to nenapada…

Honza Marek
Člen | 1664
+
0
-

pokud potřebuješ jen odkaz, můžeš použít link místo handler.

<?php
$this->addButton("detail", "Detail", array(
            // ??? link s Id zaznamu a $customerId
            "link" => function ($row) use ($presenter, $customerId) {
                return $presenter->link("ItemDetail:default",
                        array(
                            'itemid' => $row->Id,
                            'customerid' => $customerId
         ));
?>
gerades
Člen | 40
+
0
-

Skvele, link funguje! Diky.

Bumerank
Člen | 30
+
0
-

já bych potřeboval dát na tlačítko „zavolání“ signálu pro smazání položky – předání ID záznamu

<?php
    public function handleDeleteCatalog($params)
    {
        $model = new CatalogsModelGrid();
        $model->deleteCatalog($params['id']);

	// pole $params je prázdné - dump($params) vrací NULL
    }
?>
Bumerank
Člen | 30
+
0
-

mám sloupeček se třemi tlačítky u každého záznamu (smazání, editace a ještě jedna f-ce) a nacpaly se mi pod sebe, čím nehezky zvětšily výšku řádků…dá se nějak nastavit, aby byly tlačítka vedle sebe, nebo aby sloupec s tlačítky byl širší a tím pádem byly vedle sebe a ne pod sebou?

Honza Marek
Člen | 1664
+
0
-
td.gridito-actioncell {white-space:nowrap} /* nebo jak se to píše */
Bumerank
Člen | 30
+
0
-

díky…a máš to i napsáno správně :)