_DataDOMEventSink_Event.OnValidate 事件

定义

在接受对窗体的基础 XML 文档的更改之后,但在事件发生之前 OnAfterChange 发生。

public:
 event Microsoft::Office::Interop::InfoPath::SemiTrust::_DataDOMEventSink_OnValidateEventHandler ^ OnValidate;
event Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnValidateEventHandler OnValidate;
member this.OnValidate : Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnValidateEventHandler 
Event OnValidate As _DataDOMEventSink_OnValidateEventHandler 

事件类型

示例

在以下示例中Site, 对象的 属性DataDOMEventObject用于检查节点的值。 如果数据验证失败,则 ReportError(Object, String, Boolean, String, Int32, String) 使用 方法创建自定义错误:

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.<span class="label">OnValidate</span>)]
public void field1_<span class="label">OnValidate</span>(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) &gt; 50)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot exceed 50.", 
   false,
   "",
   2,
   "modeless");
 }

 if (int.Parse(e.Site.text) &lt; 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

在以下示例中Site, 对象的 属性DataDOMEventObject用于检查节点的值。 如果数据验证失败,则 ReportError(Object, String, Boolean, String, Int32, String) 使用 方法创建自定义错误:

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.<span class="label">OnValidate</span>)]
public void field1_<span class="label">OnValidate</span>(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) &gt; 50)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot exceed 50.", 
   false,
   "",
   2,
   "modeless");
 }

 if (int.Parse(e.Site.text) &lt; 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

注解

此事件处理程序不允许用户取消操作。

OnValidate 事件期间,将表单的基础 XML 文档被置为只读模式。

OnValidate 事件通常用于处理错误和处理ErrorsCollection集合,例如,添加新错误或删除现有错误。

注意:在某些情况下,与窗体的基础 XML 文档中的更改相关的事件可能会多次发生。 例如,在更改现有数据后,将发生插入和删除操作。

适用于