XmlEvent.Validating 事件
在已經接受對表單基礎 XML 文件所做的變更之後,但尚未發生 Changed 事件之前發生。
**命名空間:**Microsoft.Office.InfoPath
**組件:**Microsoft.Office.InfoPath (於 microsoft.office.infopath.dll 中)
語法
'宣告
Public Event Validating As XmlValidatingEventHandler
'用途
Dim instance As XmlEvent
Dim handler As XmlValidatingEventHandler
AddHandler instance.Validating, handler
public abstract event XmlValidatingEventHandler Validating
例外狀況
例外狀況類型 | 條件 |
---|---|
開發人員嘗試在 InternalStartup 方法以外的其他位置中繫結事件。 |
|
InvalidOperationException |
開發人員嘗試針對指定節點或群組的同一個 XPath 運算式新增多個委派。針對此事件,節點或群組的每個 XPath 運算式都只能新增一個委派。 |
InvalidOperationException |
開發人員嘗試將事件繫結到次要資料來源中的節點。次要資料來源不支援此事件。 |
備註
重要
Validating 事件並不是要由開發人員在表單程式碼中產生例項。當您從設計模式使用者介面中將事件處理常式新增至您的表單範本時,Microsoft Office InfoPath 2007 會使用 EventManager 類別,在表單程式碼檔案的 InternalStartup 方法中產生程式碼,並且使用 XmlEvent 類別的成員來將文件層級事件繫結至其事件處理常式。如需如何在 InfoPath 設計模式中新增事件處理常式的詳細資訊,請參閱操作方法:新增事件處理常式。
Validating 事件是使用 XmlValidatingEventHandler 委派所繫結。
此事件處理常式不允許使用者取消作業。
在 Validate 事件期間,表單的基礎 XML 文件為唯讀模式。
Validate 事件通常可用來處理錯誤,以及與 FormErrorCollection 集合搭配使用,例如,新增錯誤或刪除現有的錯誤。
此類型或成員可以從 Microsoft Office InfoPath 2007 或 Web 瀏覽器所開啟表單中執行的程式碼存取。
範例
在下列範例中,會在已經接受對 field9 所做的變更之後引發 Validating 事件,並使用 Add 方法,將與 field6 關聯的 FormError 物件新增到表單的 FormErrorCollection 中。
這個動作可以讓錯誤訊息與 field6 產生關聯。當使用者將游標移到 field6 時,以 Add 方法之 message 參數傳遞的字串會顯示在工具提示中。在使用者以滑鼠右鍵按一下 field6,再按一下 [完整的錯誤描述] 時,InfoPath 便會顯示完整的錯誤訊息,包括當做 Add 方法之 messageDetails 參數傳遞的字串。
public void field9_Validating(object sender, XmlValidatingEventArgs e)
{
XPathNavigator errNode =
this.CreateNavigator().SelectSingleNode("/my:myFields/my:field6",
NamespaceManager);
this.Errors.Add(errNode, "Field9Validating",
"Field9 was validated.",
"Field9 was validated and an error was assocated with Field6.");
}
Public Sub field9_Validating(ByVal sender As Object, _
ByVal e As XmlValidatingEventArgs )
Dim errNode As XPathNavigator = _
Me.CreateNavigator().SelectSingleNode("/my:myFields/my:field6", _
NamespaceManager)
Me.Errors.Add(errNode, "Field9Validating", _
"Field9 was validated.", _
"Field9 was validated and an error was associated with Field6.")
End Sub