Nelze přidat Control přes addComponent u formuláře

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
manwe
Člen | 44
+
0
-

Zdravim.
Mam form, do ktereho chci pridat komponentu, ktera bude obsahovat dalsich par inputu (predstavuje radek v nejakem seznamu polozek), ktery bych pote chtel mit moznost multiplikovat dle poctu radku.
Udelal jsem si tedy dle prikladu https://github.com/…nentsExample
tridu

<?php
class DocumentReportItemRow extends \Nette\Application\UI\Control {

    public function render(){
        bd('ahoj');
        $this->template->setFile(__DIR__.'/row.latte');
        $this->template->render();
    }

}
?>

Kdyz ji vsak pridam do formulare

<?php
$f = new Form();
...
$f->addGroup('Položky faktury');
$f->addComponent( new \DocumentReportItemRow(), 'test' );
?>

tak mi Nette hlasi chybu IControl or Container items expected, DocumentReportItemRow given.

Kdyz tam addGroup nedam (coz chci), tak mi to chybi nezahlasi, ale komponenta se vubec nevykresli.
Zacinam z toho sednout, netusim kde muze byt problem. V tom Examplu vypada ze to normalne funguje, kdyz se to ale pokousim dat do Formu tak to nejede…

Diky za radu.

manwe
Člen | 44
+
0
-

Ok tak po 2 hodinach snazeni a kombeni to vzdavam.

Kdybyste nekdo meli tip jak udelat formularovy prvek, ktery muze obsahovat vlastni latte (a par inputu uvnitr) tak budu vdecny.

David Matějka
Moderator | 6445
+
0
-

ahoj, bohuzel to nijak snadno nejde. formular muze obsahovat jen dalsi formularove prvky a kontejnery

manwe
Člen | 44
+
0
-

No prave jsem si dlouho hral i s kontejnerem, ale nepodarilo se mi tam nijak udelat aby mel vlastni sablonu (potrebuju jine bootstrapovske renderovani tech sloupcu nez mam standardne v tom formulari).

jiri.pudil
Nette Blogger | 1032
+
+1
-

Zkusil bych ComponentControl z nextras/forms. Nemám s ní vlastní zkušenost, ale vypadá, že by mohla umět něco podobného tomu, co potřebuješ :)