Select – výchozí hodnota setDefaultValue nefunguje (predava se index nebo value?)

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

Vytvarim v Preseneteru Componentu formulare a pomoci addSelect() pridavam item selector, ktery zobrazuje polozky nactene z databaze, ktere nacitam v Action metode.
<option> ma vzdy nejakou value podle poli id v databazi

takze se mi vytvori neco jako je tohle:

<option value="2">test</option>
<option value="4">test2</option>
<option value="5">test3</option>
<option value="6">test4</option>

Jedna se o editacni formular, takze ja dostanu ID nejake polozky, kterou chci editovat a chtel bych, aby se nastavilo jako selected <option>, ktere ma stejnou value, jako je ID polozky.

Tzn. dostanu polozku s ID 5, takze bych chtel mit vybrane <option> s popisem test3.

Pokousel jsem se pouzit metodu setDefaultValue, do ktere jsem predal jako prametr sve ID, nefungovalo, tak pak jsem zkusil predat Index, ani jedno mi nefunguje.

Moje prvni otazka zni, proc mi nefunguje setDefaultValue()? Je vubec urcena pro select?

Druha otazka zni, pokud se defaultni hotnota selectu urcuje podle indexu, je nejaka vychytavka, jak ten index ziskat podle value?
Dekuji

Aurielle
Člen | 1281
+
0
-
$form->setDefaults(array(
	'selector' => 5,
));

Doplňuje se index.

Bertram
Člen | 75
+
0
-

setDefaultValue() musí fungovat také.

$form->addSelect('vyber','vyber',$values)
	->setDefaultValue($this->id);
Filip Procházka
Moderator | 4668
+
0
-

Pánové, setDefaults se volá nad Nette\Forms\Container (od něj dědí formulář). A nad jednotlivými prvky se volá setDefaultValue.

simPod
Člen | 383
+
0
-

zajimave, predtim to nefungovalo, ted to funguje. Dekuji. Asi jsem zapomnel smazat cache…