Jak na grid s checboxy a daty z db tabulek?
- Mesiah
- Člen | 240
Dobrý den,
prosím Vás, rád bych si vytvořil grid – tabulku se sloupci a řádky,
řádky budou tvořit checkbox a hodnoty vytažené z různých tabulek.
Tuhle srandu chci vytvořit jako komponentu a zají má mě, jak tam mám
vložit ty formulářové věcičky (checkboxy a buttony s callbacky)? Napadá
mě, jestli v nějaké metodě komponenty, např. výchozí
render()
vytvořím instanci AppForm()
, kde přidám
checkboxy + buttony a callbacky a ručně tento formulář vykresluji? Nebo je
to úplně naopak, vytvořím formulářovou komponentu a tam přidávám
položky? Případně v této formulářové komponentě vytvořím nějaké
conteiner a tam dávám ty položky?
Můžete konkrétní případ prosím?
- Mesiah
- Člen | 240
jtousek napsal(a):
Co tu komponentu udělat jako potomka AppForm s vlastní speciální šablonou?
Hmm, zní to nadějně. Můžete mi poradit s tímhle: jak vytvořím
šablonu, myslím obdobu
$template = parent::createTemplate(); $template->setFile(dirname(__FILE__) . '/GridForm.phtml');
?
Nakonec bych měl asi vracet metodu rodiče, ano?
- jtousek
- Člen | 951
Tady je trochu problém.
Formulář samotný totiž nedědí od Control, tudíž se nejedná o vykreslitelnou komponentu. Tzn. nemá vlastní šablonu. Když jsem to před několika měsíci řešil tak se to dělalo následovně, zda již je lepší metoda netuším.
Použil jsem
{include '@form.phtml', form => $presenter['myForm']}
Pro control se jinak používá
{control myForm}
- arron
- Člen | 464
IMHO je daleko lepsi tomu udelat control (tridu dedici od
Control
) a veskerou logiku udelat tam (cili vytvorit pomoci nejake
tovarnicky AppForm
apod.). Viz. dokumentace :-)
- Mesiah
- Člen | 240
phx datagrid je moc složitý, přijde mi to jako jít kanonem na vrabce, už jsem na něj koukal.
Tharos tohle se blíží tomu, co chci dosáhnout, ale neni to ono… když jsem usínal, tak mě napadlo, že bych to mohlo udělat podobně, jaké je tvé řešení, vytvořit si továrničku na formulář a pak se na ni při renderingu napojit a přidávat tolik checkboxů kolik je položek, zatím sice nevím přesně, jak bude vypadat template, ale snad to nějak dám dohromady…
Edit:
Dal jsem to dohromady. Jenže, řeším otázku, jak dát dohromady checkbox +
další informace (tím myslm id, popis, pocet, atd…) mám si na to vytvořit
nějaký objekt, nebo bude stačit pole? Alá
$item = array($this['form']->addCheckbox($i->id), $i->id, $i->desc, $i->count, ...)
?
Je tohle vhodný postup, nebo spíš berlička pro kulhavku?
E2: Zkusil jsem asociativní pole, jede to jak chci, takže asi úspěšně vyřešeno… tyo… :)
Editoval Mesiah (14. 10. 2010 10:27)
- Tharos
- Člen | 1030
Možnosti jsou tam prakticky neomezené, můžeš podobně koncipované komponentě předat nějaký data source, ze kterého se řádky toho formuláře budou generovat (nemusíš se omezovat jenom na omezené možnosti asociativního pole) a podobně. Ale tak hlavně, že píšeš, že snad úspěšně vyřešeno :).