Datagrid – akce s jinym ID
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- reflex
- Člen | 28
Ahoj,
resil jsem ted jak vytvorit akci, ktera bude predavat jine ID nez ‚primarni‘. Mozna vynalezam kolo..
<?php
$foo = new Foo;
$data = $foo->fetch();
$grid = new DataGrid();
$grid->bindDataTable($data);
$grid->addColumn('NAME', 'Název')->addFilter();
$grid->addColumn('ADDRESS', 'Adresa')->addFilter();
$grid->addActionColumn('Akce');
$grid->keyName = 'FOO_ID';
$grid->addAction('Editovat uživatele', 'XXX:userForm', Html::el('span')->setText('Editovat uživatele'), FALSE, 'USER_ID');
?>
Reseni:
<?php
DataGridRenderer.php:548
$action->generateLink((array) $data);
DataGridAction.php:83
$link = $control->link($this->destination, array($key => $args[$key])); break;
?>
Editoval reflex (28. 12. 2009 14:21)
- reflex
- Člen | 28
Tak jeste jedna uprava – moznost vytvorit akci s nekolika ID/hodnotama
<?php
// DataGridAction.php:84
$key = (array) $key;
$params = array();
foreach($key as $k) {
$params[$k] = $args[$k];
}
$link = $control->link($this->destination, $params); break;
?>
Editoval reflex (6. 1. 2010 17:49)
- odin
- Člen | 50
A pres udalost onActionRender to nejde? v tovarne:
<?php
$grid->addAction
$grid->addActionColumn('Actions');
$grid->addAction('Dummy', 'default:list', Html::el('span'));
$renderer = $grid->getRenderer();
$renderer->onActionRender[] = array($this, 'onGridActionRender');
?>
a v presenteru metodu
<?php
public function onGridActionRender(Html &$action, DibiRow $data) {
//vymazeme co tam je
$action->setName(NULL);
$action->setHtml(NULL);
$action->attrs = array();
$action->add('a ted si sem muzu dat uplne cokoliv');
?>