Datagrid + formátování obsahu + filtr

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

Ahoj, mám Datagrid se sloupcem, do kterého z DB načítám XML řetězec. Protože bych jej celý v Datagridu nezobrazil, tak používám svou funkci pro formátování obsahu dle: https://componette.org/search/?… . V mé funci si XML rozpársuji a vytáhnu pro datagrid jen to co potřebuji. Toto všechno mi funguje. Problém je, že nad tímto sloupcem používám filtr a ten se aplikuje ne na to co je vidět v datagridu (výsledek mé funkce), ale na celé XML, což já nechci. Jde s tím něco dělat? Díky

marek.dusek
Člen | 99
+
0
-

Filtr = doplneni WHERE podminky do SQL. Pokud si neco parsujes az na vystupu v PHP, tezko pres to muzes v DB vyhledavat. Resenim je jednine parsovani uz na urovni DB, ale nevim, jaky backend pouzivas, tj. jestli to umi. Nebo se pokusit ty WHERE podminky udelat pres nejaky regexp (jakoze pseudo-xml parser).

BTW prispevek cislo 5000 v tomto foru :-)

Editoval marek.dusek (6. 3. 2010 18:51)

lumen
Člen | 32
+
0
-

diky za odpoved. Bohuzel to parsovani neni uplne trivialni. Neni tak mozne to provadet regexpem na urovni selectu. Zkusim se asi podivat do kodu datagridu, jestli by nesel nejak priohnout..

despiq
Člen | 320
+
0
-

to by me zajimalo jak to vyresis, datagrid ziskava data z datasourcu a kdyz je v nakym sloupci proste string tak to bude sortovat jako string, kdyz das addFilter tak bys pak mohl teoreticky alespon filtrovat podle toho co tam napises

Achse
Člen | 44
+
0
-

Jeden ze způsobů řešení je použití asociativního pole v kombinaci s metodou:

->addSelectboxFilter($seznam_polozek)

Bohužel je to použitelné jen ve velmi specifických případech, kdy je předem dané, co může být v políčku.