Validation"
m |
|||
Line 2: | Line 2: | ||
= Validate Each Component at onBindingSave = | = Validate Each Component at onBindingSave = | ||
− | Data Binding Manager provides an alternative way to do validation | + | In additions to <javadoc method="setConstraint(java.lang.String)">org.zkoss.zul.impl.InputElement</javadoc>, Data Binding Manager provides an alternative way to do the validation. |
+ | |||
+ | Before saving a value into a bean, the <tt>onBindingSave</tt> event is sent to each of binding components, so that you could do the validation with your customized way by registering <tt>onBindingSave</tt> event listener in these components. For example, | ||
<source lang="xml"> | <source lang="xml"> | ||
Line 12: | Line 14: | ||
</intbox> | </intbox> | ||
</source> | </source> | ||
+ | |||
+ | The <tt>onBindingSave</tt> event is sent with an instance of <javadoc>org.zkoss.zkplus.databind.BindingSaveEvent</javadoc>, and you could retrieve the detailed information from it. | ||
= Validate All at onBindingValidate = | = Validate All at onBindingValidate = |
Revision as of 06:36, 9 May 2011
Validate Each Component at onBindingSave
In additions to InputElement.setConstraint(String), Data Binding Manager provides an alternative way to do the validation.
Before saving a value into a bean, the onBindingSave event is sent to each of binding components, so that you could do the validation with your customized way by registering onBindingSave event listener in these components. For example,
<intbox value="@{person.age, save-when='btn.onClick'}">
<attribute name="onBindingSave">
if (self.value < 18)
throw new WrongValueException("Age below 18 is not allowed to enter this site.")
</attribute>
</intbox>
The onBindingSave event is sent with an instance of BindingSaveEvent, and you could retrieve the detailed information from it.
Validate All at onBindingValidate
Then, after posting onBindingSave events to all of binding components to make sure their values are validated. Then, data binding will post an onBindingValidate event to the ZK component which triggers data binding to work, for example, a button.
<button id="btn" label="submit">
<custome-attributes passed="false"/>
<attribute name="onBindingValidate">
self.setAttribute("passed",true);
</attribute>
<attribute name="onClick">
if (self.getAttribute("passed") == true)
Executions.sendRedirect("index.zul");
</attribute>
</button>
Finally, after posting all events of validation phase to all related ZK components, data binding will truly save data into data bean.
Version History
Version | Date | Content |
---|---|---|