Checkboxlist indexy jako id ze zdroje

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

Zdravím, nevíte jak bych mohl u checkboxlistu docílit toho, aby se po odeslání formuláře zobrazily všechny položky (ne pouze ty, co jsou zaškrtnuté) a navíc, aby místo indexů v poli byly ID ze zdroje (vkládáné pole z databáze) a hodnota prvků v poli by byla opravdová hodnota (FALSE/TRUE). ?

fce getControl

	public function getControl($key = NULL)
	{
		if ($key === NULL) {
			$container = clone $this->container;
			$separator = (string) $this->separator;

		} elseif (!isset($this->items[$key])) {
			return NULL;
		}

		$control = parent::getControl();
		$control->name .= '[]';
		$id = $control->id;
		$counter = -1;
		$values = $this->value === NULL ? NULL : (array) $this->getValue();
		$label = Html::el('label');

		foreach ($this->items as $k => $val) {
			$counter++;
			if ($key !== NULL && $key != $k) continue; // intentionally ==

			$control->id = $label->for = $id . '-' . $counter;
			$control->checked = (count($values) > 0) ? in_array($k, $values) : false;
			$control->value = $k;

			if ($val instanceof Html) {
				$label->setHtml($val);
			} else {
				$label->setText($this->translate($val));
			}

			if ($key !== NULL) {
				return (string) $control . (string) $label;
			}

			$container->add((string) $control . (string) $label . $separator);
		}

		return $container;
	}

Editoval joehoe (22. 4. 2012 12:13)

joehoe
Člen | 12
+
0
-

Tak ID za indexy jsem uz vyresil. Nevite jak jeste udelat to, aby se zobrazily vsechny polozky?