ublaboo / datagrid předání ID pro inlineAdd
- romanm
- Člen | 27
Ahoj, používám datagrid a teď řeším problém jak předat ID pro inlineAdd(). Třeba už to někdo řešil nebo mě nakopne správným směrem.
Komponenta s gridem je přímo v presenteru
protected function createComponentInvoiceItemsGrid($name)
{
$invoiceId = intval($this->getParameter('id'));
$grid = new DataGrid($this, $name);
$grid->setDataSource($this->repo->getItems($invoiceId));
$grid->addColumnText('item', 'Název položky');
$grid->addColumnNumber('count', 'Počet');
$grid->addColumnText('unit', 'Jednotka');
$grid->addColumnNumber('price', 'Cena za m.j.');
/* Add items to invoice */
$grid->addInlineAdd()
->onControlAdd[] = function (Nette\Forms\Container $container) {
$container->addText('item', '');
$container->addInteger('count', '');
$container->addSelect('customer_id', '')
->setItems(InvoiceRepository::ITEMS);
$container->addInteger('price', '');
$container->addHidden('invoice_id');
//->setValue($invoiceId);
};
}
Když přijdu na stránku s gridem, tak se korektně naplní daty z tabulky, URL je ve tvaru „items/2020001“ , takže se k ID dostanu, ale po kliknutí na inline přidání řádku tak se URL změní na „items?do=invoiceItemsGrid-showInlineAdd“ a zde přichází problém, jak se dostat k potřebnému ID.
Zkoušel jsem různé varianty, ale nic nevedlo k výsledku. Neřešil jste někdo něco podobného nebo nějakou radu jak na to? Děkuji