| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- <sect1 id="zend.dojo.form" xmlns:xi="http://www.w3.org/2001/XInclude">
- <title>Dojo 表单元素和装饰器 </title>
- <para>
- 建立在 <link linkend="zend.dojo.view.dijit">dijit 视图助手 </link> 之上的
- <code>Zend_Dojo_Form</code> 类家族在你的表单里自然地使用 Dijits。
- </para>
- <para>
- 有三个选项用来在你的表单里使用 Dojo 表单元素:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- 用 <code>Zend_Dojo::enableForm()</code>. 递归地为装饰器和所有表单的元素添加插件路径。
- 另外,它将 dojo-enable 视图对象。然而注意,任何在这个调用 <emphasis>之后</emphasis> 附加
- 的子表单也需要用 <code>Zend_Dojo::enableForm()</code>。
- </para>
- </listitem>
- <listitem>
- <para>
- 分别使用 Dojo-specific 表单<code>Zend_Dojo_Form</code>和子表单 <code>Zend_Dojo_Form_SubForm</code>实现。
- 这些可以做为 <code>Zend_Form</code> 和 <code>Zend_Form_SubForm</code>的随时替换,包含所有合适的装饰器
- 和元素路径,设置一个 Dojo-specific 缺省的显示组类并 dojo-enable 视图。
- </para>
- </listitem>
- <listitem>
- <para>
- 最后并且是最单调的是,你可以自己设置合适的装饰器和元素路径,设置缺省显示组类
- 并 dojo-enable 视图。因为 <code>Zend_Dojo::enableForm()</code> 已经做了这个,
- 有个小原因需要这样做。
- </para>
- </listitem>
- </itemizedlist>
- <example id="zend.dojo.form.enable">
- <title> 在你的表单里开启 Dojo </title>
- <para>
- “等等” 你会说,“我已经用我自己定制的表单类扩展了 Zend_form!怎么 Dojo-enable 它?”
- </para>
- <para>
- 首先而且是最简单的是,修改从 <code>Zend_Form</code> 扩展为从 <code>Zend_Dojo_Form</code> 扩展,
- 并更新任何实例化 <code>Zend_Form_SubForm</code> 的地方为实例化 <code>Zend_Dojo_Form_SubForm</code>。
- </para>
- <para>
- 第二个方法是在定制表单的 <code>init()</code> 方法里调用 <code>Zend_Dojo::enableForm()</code>;
- 当表单定义完成,遍历所有子表单来 dojo-enable 它们:
- </para>
- <programlisting role="php"><![CDATA[
- class My_Form_Custom extends Zend_Form
- {
- public function init()
- {
- // Dojo-enable the form:
- Zend_Dojo::enableForm($this);
- // ... continue form definition from here
- // Dojo-enable all sub forms:
- foreach ($this->getSubForms() as $subForm) {
- Zend_Dojo::enableForm($subForm);
- }
- }
- }
- ]]>
- </programlisting>
- </example>
- <para>
- dijit-specific 表单装饰器和元素的用法和使用任何其它表单装饰漆或元素一样。
- </para>
- <xi:include href="Zend_Dojo-Form-Decorators.xml" />
- <xi:include href="Zend_Dojo-Form-Elements.xml" />
- <xi:include href="Zend_Dojo-Form-Examples.xml" />
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|