Vlozenie pola dat do Grida
- Juraj_
- Člen | 22
Ahojte,
ako si poslem vypocitane data z prezentera do grida?
/**
* @return DistributionPlanGrid
*/
protected function createComponentDistributionPlanGrid()
{
$grid = new DistributionPlanGrid();
return $grid;
}
vytvori sa mi Grid, ale ak data netaham z db ale vypocitaju sa po vyplneni formu, tak ich nasledne neviem dostat do grida. Viete mi poradit, ako na to?
Dakujem
- Pavel Kravčík
- Člen | 1196
Nezkoušel jsem, ale co v succcesu formuláře něco jako:
$this['distributionPlanGrid']->setModel(['zvire' => 'pes']);
Editoval Pavel Kravčík (8. 4. 2016 11:31)
- Juraj_
- Člen | 22
Pavel Kravčík napsal(a):
Nezkoušel jsem, ale co v succcesu formuláře něco jako:
$this['distributionPlanGrid']->setModel(['zvire' => 'pes']);
toto mi uz pisalo ked som sa to snazil sam obist:
Nette\InvalidStateException
Cannot send header after HTTP headers have been sent (output started at
C:\xampp\htdocs\TransportCompany\vendor\tracy\tracy\src\Tracy\Dumper.php:75).
neviem, ako to obist…
- Pavel Kravčík
- Člen | 1196
Zkusil jsem na čistém presenteru a v pohodě funguje. Pravděpodobně budeš mít chybu někde u sebe v jiné části kódu.
// Presenter
protected function createComponentForm()
{
$form = new \Nette\Application\UI\Form();
$form->addHidden('id')
->setValue(1);
$form->addText('animal');
$form->addSubmit('send');
$form->onSuccess[] = [$this, 'successForm'];
return $form;
}
public function successForm($form, $values)
{
$this['grid']->setDataSource([['id' => $values->animal, 'animal' => $values->animal]]);
$this['grid']->redrawControl();
}
protected function createComponentGrid($name)
{
$grid = new \Ublaboo\DataGrid\DataGrid($this, $name);
$grid->setDataSource([]);
$grid->addColumnText('animal', 'Zvíře');
return $grid;
}
// Latte
{control form}
{control grid}
- Juraj_
- Člen | 22
Pavel Kravčík napsal(a):
Zkusil jsem na čistém presenteru a v pohodě funguje. Pravděpodobně budeš mít chybu někde u sebe v jiné části kódu.
// Presenter protected function createComponentForm() { $form = new \Nette\Application\UI\Form(); $form->addHidden('id') ->setValue(1); $form->addText('animal'); $form->addSubmit('send'); $form->onSuccess[] = [$this, 'successForm']; return $form; } public function successForm($form, $values) { $this['grid']->setDataSource([['id' => $values->animal, 'animal' => $values->animal]]); $this['grid']->redrawControl(); } protected function createComponentGrid($name) { $grid = new \Ublaboo\DataGrid\DataGrid($this, $name); $grid->setDataSource([]); $grid->addColumnText('animal', 'Zvíře'); return $grid; } // Latte {control form} {control grid}
Dakujem tvoj priklad mi pomohol vyriesit problem. :)