defaultne check-nute niektore riadky v DataGrid-e

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

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
+
0
-

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
+
0
-

Jo, ty popupy by se hodily, zrovna delam neco podobneho!

marek.dusek
Člen | 99
+
0
-

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
+
0
-

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
+
0
-

;) 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)