vykreslitelnou Control do AppForm bez šablon

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

Zdravim,
mam vlastní instanci vykreslitelné Control, která implementuje metodu render.
Je nějak možné nějak jednoduše přidat komponentu do formuláře mezi jednotlivé prvky?

Řešit toto pomocí šablony se mi nechce, neboť formulář se hodně dynamicky mění a musel bych přesunout většinu logiky do šablony.

Napadlo mě řešení vytvořit wrapper implementující IFormControl do kterého bych v konstruktoru předával $vlastniControl->render().

Nějaké nápady? Díky

Jod
Člen | 701
+
0
-

Kukni sa do api:
FormContainer::addComponent ($component, string $name, [string $insertBefore = NULL]) – https://api.nette.org/…ntainer.html#…

zdvori
Člen | 10
+
0
-

Kukni sa do api:
FormContainer::addComponent ($component, string $name, [string $insertBefore = NULL]) – https://api.nette.org/…ntainer.html#…

$this->addComponent($list,'listComponent'); //tim komponentu sice pridam, ale nevim jak ji vykreslit ve formulari
$this['listComponent']->render();  //kdyz zavolam rucne funguje vypis (ale pochopitelne jinde nez chci)
David Grudl
Nette Core | 8218
+
0
-

Standardní ConventionalRender vykresluje jen prvky IFormControl. Samozřejmě je možné vykreslovač rozšířit, ale je potřeba to udělat koncepčně. V tuto chvíli mi vykreslení cizorodé komponenty moc nejde pod fousy, mohl bys zkusit popsat, k čemu konkrétně to potřebuješ?

zdvori
Člen | 10
+
0
-

David Grudl napsal(a):
V tuto chvíli mi vykreslení cizorodé komponenty moc nejde pod fousy, mohl bys zkusit popsat, k čemu konkrétně to potřebuješ?

Dejme tomu, že potřebuji nad možností uploadovat soubor zobrazit seznam již přiřazených souborů + další info.

Ve fóru jsem také narazil na možnost výpisu pomocí group, do které bych dal výstup render() mojí komponenty, tak to nemohu použít, neboť Group již používám na automatické generování záložek vícestránkového formuláře (za pomocí JQuery). Pokud by bylo možné používat Group hierarchicky do více než jednoho zanoření tak by mi to také stačilo. Momentálně ale v group parametr ->setOption(‚embedNext‘, TRUE); nedostačuje.

Co si myslíte o řešení rozšířit AppForm o methodu addStaticText, která vložila komponentu implementující rozhraní IFormControl a zároveň byla pouze schopná vypsat nastavený text předaný jí pomocí render() metody jiné nekompatibilní IFormControl komponenty?