DataGrid – více řádků v jedné buňce jednoho zázamu

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

Při práci s DataGridem jsem narazil na situaci, kterou nevím jak řešit a ani podle popisu doplňku jsem nic nevykoumal. Snažím se zobrazit data ve vazbě 1:n, ale z pohledu prvku 1.

Modelová situace: Mám seznam klientů a ke každému z nich si vedu seznam telefoních čísel. Počet čísel se může pro každého klienta měnit. Rád bych si pak zobrazil tento seznam tak, že budu mít v jednom řádku vypsaného klienta (první sloupeček) a ve druhém sloupečku pak odřadkovaně jednotlivá čísla.

Vypisovat si čísla a k nim jméno klienta je samozřejmě možné, nicméně moje reálná situace je trochu komplexnější a otočení pohledu na data není možné.

Umožňuje DataGrid sám o sobě něco takového udělat? Nebo je potřeba použít nějaký callback či si přepsat renderer?

Díky!

stefi023
Člen | 71
+
0
-

Takovehle pripady vetsinou resim na strane SQL, pomoci GROUP_CONCAT() a GROUP BY…aby z toho zase ve vysledku byla tabulka se kterou datagrid umi pracovat

zjednodusene:

SELECT klienti.jmeno, GROUP_CONCAT(cisla.tel_cislo SEPARATOR ' ') FROM klienti JOIN cisla ON (klienti.id = cisla.klient_id) GROUP BY klient.id

s tim separatorem si musis pohrat, pokud tam narves primo … SEPARATOR ‚<br/>‘ tak ti to datagrid myslim escapuje takze to nebude to co potrebujes, bud si musis definovat vlastni formatCallback nebo to vyresit jinak – me ale vetsinou staci mezera, pac v uzkem sloupci se to zalomi automaticky na novy radek :)

Editoval stefi023 (5. 9. 2011 15:01)