【问题标题】:Zend_Form_Element label in row and element in rowZend_Form_Element 行中的标签和行中的元素
【发布时间】:2011-04-11 09:25:01
【问题描述】:

如何装饰zend表单元素,将标签放入tr,将元素放入tr

<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'))
    )
);

但它在同一行中产生标签和元素[tr] 我想要一行中的标签和另一行中的元素如何做到这一点?

【问题讨论】:

    标签: zend-framework zend-form zend-form-element zend-decorators


    【解决方案1】:

    用装饰器来做这件事有点棘手,但这是可能的。由于您想将两个单独的组件包装在彼此分离的标签中,因此您必须首先使用 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'))
    ));
    

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多