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
+
0
-

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
+
0
-

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
+
0
-

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');

?>