Vykreslení Forms\Controls\Cokoliv by nemuselo být závislé na Formuláři
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- pawouk
- Člen | 172
Občas potřebuji prostě jen vyhreslit nějakou formulářovou komponentu, třeba selectbox. Ne ve formu, něco co je například dále využívané ajaxem, nebo třeba jen slouží k vykreslení dat, nikoliv updatu! Příkladů by se pár našlo. Tak jsem si chtěl ulehčit život když jsem chtěl vykreslit selectbox.
$selectbox = new \Nette\Forms\Controls\SelectBox('neco', array('x' => 'y'));
print (string) $selectbox->control;
Tohle by bylo fajn kdyby vyplivlo selectbox. Ale bohužel to vyhodí víjimku že Compoent is not atteched to \Nette\Forms\Form a to pouze kvuli jmenu a id. V BaseControlu na řádku 386 a 388. Celkem škoda ne? Já bych to tedy rozhodně využil!
- pawouk
- Člen | 172
Ono by vlasně stačilo přidat do BaseControl metodu setHtmlName($name)… A pak by to šlo takto:
$selectbox = new \Nette\Forms\Controls\SelectBox('neco', array('x' => 'y'));
$selection->htmlId = 'nejakeid';
$selection->htmlName = 'nejakejmeno';
print (string) $selectbox->control;
Pak by toto fungovalo :-)