_DataDOMEventSink_Event.OnValidate 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在接受对窗体的基础 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) > 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) < 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) > 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) < 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 文档中的更改相关的事件可能会多次发生。 例如,在更改现有数据后,将发生插入和删除操作。