DataGrid – více řádků v jedné buňce jednoho zázamu
- stekycz
- Člen | 152
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
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)