Vykreslení Kontejneru v rámci Group
- danielseek
- Člen | 42
Poradili byste mi někde, jak vykreslit Kontejner, tak aby se zobrazil spolu s dalšími prvky v té samé skupině. Zkoušel jsem i explicitně nastavit
$container->setCurrentGroup($group);
, ale stejně se mi nezobrazí prvky z toho daného kontejneru. Formulář vykresluji ručně.
{ foreach $groups as $gname => $group}
{ foreach $group->getControls() as $control}
Problém je, že contejner nelze funkcí getControls dostat, ta vrací jen komponenty, co mají předka BaseControl
Kontejner používám ke kompozici částí formuláře, které se opakují.
Řeším také, jak se dostanu k prvkům, které nemají nějakou group. Když dám
$form->getControls()
tak mi to vyhodí úplně všechny prvky i včetně těch, jež jsou zanořeny v kontejnerech…
Dá se to nějak rozumně vyřešit? Už se s tím pachtím dvě hodiny. Mám pocit, že nette mi občas přinese více práce než užitku…
Editoval danielseek (13. 11. 2013 0:27)
- Casper
- Člen | 253
Nastavení aktuální groupy je zapotřebí zavolat před tím, než tam začneš sázet inputy.
$container->setCurrentGroup($group);
$container->addText();
Pokud používáš pro kontejnery vlastní třídy, což doporučuji, tak mrkni na BaseContainer pod čarou.
- danielseek
- Člen | 42
Děkuji za odpověď, když volám $container->setCurrentGroup($group); v metodě attached, tak vše funguje jak má.
Ještě bych tedy potřeboval vědět, jak zobrazím všechny prvky, které nejsou součástí žádné group.
Editoval danielseek (13. 11. 2013 20:22)
- David Matějka
- Moderator | 6445
pri vykreslovani se controlu nastavi option „rendered“ na true. pak staci projit vsechny controly formu a vykreslit ty, ktery nemaji option „rendered“ nastavenej na true. tak to resi nette renderer, viz https://api.nette.org/…rer.php.html#…
- danielseek
- Člen | 42
Děkuji za odpověď, nebyl jsem dostatečně důkladný při studování třidy Rendereru.