Ako pridat atribut v sablone pre element cez getControlPrototype pokial atribut uz ma?

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

Caute, mam jeden problem, mam form element:

		$form->addSelect('itemsPerPage', NULL, $this->getPerPageData())
			->setAttribute('class', 'my-class1');

a vsablone mu potrebujem pri renderovani pridat dalsi class:

{$form->render($form['itemsPerPage']->getControlPrototype()->addCalss('my-class2'))}

lenze toto nefunguje, skusal som to este pred renderovanim v komponente:

$form['itemsPerPage']->getControlPrototype()->addCalss('my-class2');

tak mi vygenerovalo element ale mal 2 krat class=„my-class21“ a class=„my-class2“, a ked som to urobil v sablone tak to uz ten prvok ani nevykreslilo. Neviete poradit ako na to?

bazo
Člen | 620
+
0
-
{input itemsPerPage class => 'class1 class2'}
duskohu
Člen | 778
+
0
-

@bazo kedze pouzivam bootstrap render zapis musim mat tento:

{$form->render($form['itemsPerPage'])}
duskohu
Člen | 778
+
0
-

Tak a prisiel som na problem, ach ta nepozornost miesto addClass som dal addCalss, takze to funguje, a vyhode je ze to neprepise povodne data.

bazo
Člen | 620
+
0
-

neviem ako si prisiel na to, ze musis pouzit taky zapis. ja pouzivam bootstrap renderer a veselo si rucne renderujem formy takym zapisom ako som napisal

duskohu
Člen | 778
+
0
-

Lebo ja som chcel aby mi to vyrenderovalo input aj label v divoch rovno aby som to nemusel pisat

{input itemsPerPage class => 'class1 class2'}

vyrenderuje len input, a navyse som potreboval aby som class len doplnil lebo to uz nejaku clasu malo a tu som nechcel prepisovat. Takze som musel zvolit zapis:

{? $form['itemsPerPage']->getControlPrototype()->addClass('span1')}
{$form->render($form['itemsPerPage'])}

Edit: stale mam pocit ze je to menej pisania ako keby som to musel s inputom labelom a tym v com to je zabalene rucne pisat.

Editoval duskohu (11. 7. 2013 0:34)