Datagrid – různý počet action na každém řádku
- radikus
- Člen | 11
Ahoj, mám výpis v datagridu a potřebuju kontrolovat jednotlivé
řádky – jestli je splněna nějaká podmínka, tak zobraz action
s ikonou.
Příklad: mám výpis akcí a jestli nebyl o této akci odeslán email, tak
zobraz ikonu s action pro poslání emailu.
Lze tohle udělat, aby byly na jednom řádku třeba 2 actiony a na dalším 3?
Nebo nějaké ekvivalentní řešení?
Díky za pomoc.
- Lopo
- Člen | 277
radikus napsal(a):
Ahoj, mám výpis v datagridu a potřebuju kontrolovat jednotlivé řádky – jestli je splněna nějaká podmínka, tak zobraz action s ikonou.
Příklad: mám výpis akcí a jestli nebyl o této akci odeslán email, tak zobraz ikonu s action pro poslání emailu.
Lze tohle udělat, aby byly na jednom řádku třeba 2 actiony a na dalším 3? Nebo nějaké ekvivalentní řešení?
Díky za pomoc.
popisem tu moje riesenie, netvrdim ze idealne
skus do tovarnicky na konci pridat
$grid->getRenderer()->onActionRender[]=array($this, 'gridOnActionRendered');
a potom nieco ako
public function treeOnActionRendered(Html $cell, $column)
{
if ($cell->title=='title') {
if ($cond) {
$cell->setHtml(Html::el('span')->class('icon icon-no-orders'));
return $cell;
}
$cell->removeChildren();
$cell->href=NULL;
return $cell;
}
return $cell;
}
popis:
pri vykreslovani akcie ‚title‘ sa rozhoduje podla $cond
ak sa splni tak nastavi akcii ikonu, resp html obsah odkazu
ak sa nesplni tak odstrani obsah a link nastavi na prazdny …
teoreticky sa to da este doplnit o $cell->setName() – ale treba to do
oboch casti spracovania podmienky – pre splnenu asi setName(‚a‘) a pre
nesplnenu setName(NULL) – neviem totiz preco ale ono si to pamata medzi
jednotlivymi riadkami (budem sa na to musiet pozret)
mno a samozrejme ak sa nekresli akcia ‚title‘ tak sa nic nezmeni a vrati
riadne $cell