ublaboo / datagrid předání ID pro inlineAdd

romanm
Člen | 27
+
0
-

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

romanm
Člen | 27
+
0
-

Blbec… kdyby náhodou byl někdo tak hloupej..

public function renderItems(int $id)
{
}

měl jsem v items.latte udělaný jen control té komponenty, ale v presenteru jsem ten render nedefinoval