0

行如何裝飾zend的表單元素把標籤在TR和元素在TRZend_Form_Element的標籤在

<tr><td><label>name</label></td></tr> 
<tr><td><input type="text"/></td></tr> 

我用這個代碼

$this->setElementDecorators(
    array('ViewHelper', 
    array(array('data'=>'HtmlTag'),array('tag'=>'td','class'=>'element_td')), 
    array('Label',array('tag'=>"td")), 
    array(array('row'=>'HtmlTag'),array('tag'=>'tr')) 
    ) 
); 

,但它產生的標籤和elemment在同一行[tr] 我想要行中的標籤和另一行中的元素如何做到這一點?

回答

4

用裝飾器做這件事有點棘手,但它是可能的。既然你想把兩個單獨的組件包裝在彼此分離的標籤中,你必須首先使用HtmlTag裝飾器來包裝其中的一個,然後通過在它之後附加裝飾器來構建另一個(或者可選擇另一種方式周圍和預計):

$this->setElementDecorators(array(
    array('Label'), 
    array(array('labelTd'=>'HtmlTag'),array('tag'=>'td','class'=>'label_td')), 
    array(array('labelTr'=>'HtmlTag'),array('tag'=>'tr','class'=>'label_tr')), 
    array(array('elementOpenTr'=>'HtmlTag'),array('tag'=>'tr','class'=>'element_tr','openOnly'=>true,'placement'=>'append')), 
    array(array('elementOpenTd'=>'HtmlTag'),array('tag'=>'td','class'=>'element_td','openOnly'=>true,'placement'=>'append')), 
    array('ViewHelper', array('placement' => 'append')), 
    array(array('elementCloseTd'=>'HtmlTag'),array('tag'=>'td','closeOnly'=>true,'placement'=>'append')), 
    array(array('elementCloseTr'=>'HtmlTag'),array('tag'=>'tr','closeOnly'=>true,'placement'=>'append')) 
)); 
+0

非常感謝你 – ahmedsafan86 2011-04-11 13:29:47