_DataDOMEventSink_Event.OnBeforeChange 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在对表单的基础 XML 文档进行更改之后且接受更改之前发生。
public:
event Microsoft::Office::Interop::InfoPath::SemiTrust::_DataDOMEventSink_OnBeforeChangeEventHandler ^ OnBeforeChange;
event Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnBeforeChangeEventHandler OnBeforeChange;
member this.OnBeforeChange : Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnBeforeChangeEventHandler
Event OnBeforeChange As _DataDOMEventSink_OnBeforeChangeEventHandler
事件类型
示例
在以下示例中,OnBeforeChange 事件处理程序用于验证域中的数据。 如果数据无效, ReturnStatus 则对象的 属性 DataDOMEventObject 用于拒绝更改。
[InfoPathEventHandler(MatchPath="/Customers/Customer/RepVisitDt", EventType=InfoPathEventType.<span class="label">OnBeforeChange</span>)]
public void RepVisitDt_<span class="label">OnBeforeChange</span>(DataDOMEvent e)
{
IXMLDOMNode phone = thisXDocument.DOM.selectSingleNode (@"/Customers/CustomerInfo/ContactDates/PhoneContactDt");
if (phone.text == "")
{
e.ReturnMessage = "The Phone Contact Start date must be set prior to the Representative Visit date.";
e.ReturnStatus = false;
return;
}
// If the data is valid, eventObj.ReturnStatus = true.
e.ReturnStatus = true;
return;
}
在以下示例中,OnBeforeChange 事件处理程序用于验证域中的数据。 如果数据无效, ReturnStatus 则对象的 属性 DataDOMEventObject 用于拒绝更改。
[InfoPathEventHandler(MatchPath="/Customers/Customer/RepVisitDt", EventType=InfoPathEventType.<span class="label">OnBeforeChange</span>)]
public void RepVisitDt_<span class="label">OnBeforeChange</span>(DataDOMEvent e)
{
IXMLDOMNode phone = thisXDocument.DOM.selectSingleNode (@"/Customers/CustomerInfo/ContactDates/PhoneContactDt");
if (phone.text == "")
{
e.ReturnMessage = "The Phone Contact Start date must be set prior to the Representative Visit date.";
e.ReturnStatus = false;
return;
}
// If the data is valid, eventObj.ReturnStatus = true.
e.ReturnStatus = true;
return;
}
注解
此事件处理程序允许用户取消操作。
在 OnBeforeChange 事件期间,将表单的基础 XML 文档设置为只读模式。 ReturnStatus如果 对象的 属性DataDOMEventObject设置为 false,则 Microsoft InfoPath 将拒绝所做的更改,并向用户显示一个消息框。 如果 OnBeforeChange 事件的代码中发生了错误,则 InfoPath 将拒绝更改,并将数据还原到以前的状态。
注意:最好避免在 OnBeforeChange 事件期间切换视图;尚未接受更改,切换到另一个视图可能会导致错误。
注意:在某些情况下,与窗体的基础 XML 文档中的更改相关的事件可能会多次发生。 例如,在更改现有数据后,将发生插入和删除操作。
注意:如果在 OnBeforeChange 事件中遇到验证错误,则无法加载文档。 事件中的 OnLoad try/catch 块可用于捕获此验证失败并加载文档(尽管存在错误)。
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈