defaultne check-nute niektore riadky v DataGrid-e
- maX
- Člen | 4
Zdravim vsetkych,
mam mensi problem s DataGridom … pokusam sa o dialog typu:
„Please confirm delete selected items“
kde by sa mal v pozadi vykrestlit povodny datagrid, ale zaskrtnute polozky musia byt logicky zasktnute znova.
skusal som nieco taketo:
$grid = $this->getComponent($this->cfg.'grid');
if($this->IDsToDelete !== NULL) {
$form = $grid->getForm();
foreach (unserialize($this->IDsToDelete) as $id) {
$form['checker'][$id]->setValue(true);
}
}
resp. metoda setValue sa na nejakych CheckBox-och zavola ($this->value sa v nich nastavi na TRUE), ale na vystupe su zial vsetky checkboxy vypnute …
dakujem za kazdu radu.
Btw, nette rocks, keep up the great work ;-)
- romansklenar
- Člen | 655
V další verzi obohatím demo aplikaci o ukázku jak pracovat s takovými popupy, tento problém ještě ověřím, protože jsem se s ním zatím nesetkal.
- marek.dusek
- Člen | 99
add predvybrane checkboxy, problem je s regeneraci formulare, pomuze neco takoveho:
protected function regenerateFormControls()
{
$form = $this->getForm();
// regenerate checker's checkbox controls
if ($this->hasOperations()) {
$values = array();
if ($form->isPopulated()) {
// preserve populated values
$values = $form->getValues();
}
$form->removeComponent($form['checker']);
$sub = $form->addContainer('checker');
foreach ($this->getRows() as $row) {
$sub->addCheckbox($row[$this->keyName], $row[$this->keyName]);
}
if (!empty($values['checker'])) {
// restore values
$form->setDefaults(array('checker' => $values['checker']));
}
}
...
}
- romansklenar
- Člen | 655
Na toto vlákno jsem úplně zapomněl, každopádně jsi první kdo na jakoukoliv nahlášenou chybu poslal i opravu ;)
- marek.dusek
- Člen | 99
;) jeste nejasej, mozna by tam misto toho setDefaults() melo byt setValues(), protoze jinak se to stejne smaze pri prekliku filtru (form je jakoby odeslany ⇒ defaults se neaplikuji)