XmlValidatingEventArgs.ReportError-Methode (XPathNavigator, Boolean, String, String)
Erstellt ein FormError-Objekt, das benutzerdefinierte Fehlerinformationen mit den angegebenen Werten enthält, und fügt es dem FormErrorCollection-Objekt des Formulars hinzu.
Namespace: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in Microsoft.Office.InfoPath.dll)
Syntax
'Declaration
Public MustOverride Sub ReportError ( _
node As XPathNavigator, _
siteIndependent As Boolean, _
message As String, _
messageDetails As String _
)
'Usage
Dim instance As XmlValidatingEventArgs
Dim node As XPathNavigator
Dim siteIndependent As Boolean
Dim message As String
Dim messageDetails As String
instance.ReportError(node, siteIndependent, _
message, messageDetails)
public abstract void ReportError(
XPathNavigator node,
bool siteIndependent,
string message,
string messageDetails
)
Parameter
- node
Typ: System.Xml.XPath.XPathNavigator
Ein XPathNavigator-Objekt an dem Knoten, der die Daten enthält, denen der Fehler zugeordnet ist.
- siteIndependent
Typ: System.Boolean
Legt die Bedingung für die automatische Löschung des FormError-Objekts fest. Wenn true festgelegt ist, wird das FormError-Objekt für Änderungen an Knoten gelöscht, die mit dem XPath-Ausdruck übereinstimmen, der von der Match-Eigenschaft dieses Ereignisobjekts zurückgegeben wird. Wenn false festgelegt ist, wird das FormError-Objekt nur dann bei der nächsten Überprüfung des Formulars gelöscht, wenn der von der Site-Eigenschaft dieses Ereignisobjekts zurückgegebene Knoten geändert wurde.
- message
Typ: System.String
Der Text, der für die kurze Fehlermeldung verwendet werden soll.
- messageDetails
Typ: System.String
Der Text, der für die ausführliche Fehlermeldung verwendet werden soll.
Ausnahmen
Ausnahme | Bedingung |
---|---|
ArgumentException | Die an diese Methode übergebenen Parameter sind ungültig. |
ArgumentNullException | Die an diese Methode übergebenen Parameter sind ein Nullverweis (Nothing in Visual Basic). |
Hinweise
Die ReportError-Methode wird verwendet, um einen benutzerdefinierten Fehler für einen Fehler zu erstellen, der während des Validating-Ereignisses aufgetreten ist.
Wenn die ReportError-Methode aufgerufen wird, erstellt InfoPath ein FormError-Objekt und fügt es der FormErrorCollection-Auflistung des aktuellen Formulars hinzu. FormError-Objekte werden aus der Auflistung entfernt, wenn die Gültigkeitsbeschränkung nicht mehr ungültig ist. In bestimmten Fällen können sie mithilfe der Methoden Delete oder DeleteAll explizit entfernt werden.
FormError-Objekte können auch mithilfe der Add-Methode der FormErrorCollection-Klasse erstellt werden.
Hinweis
Siteunabhängige Fehler sollten verwendet werden, wenn die Fehler auf alle Knoten desselben Typs angewendet werden sollen. Wenn der Fehler nur auf einen bestimmten Knoten angewendet werden soll, müssen Sie siteabhängige Fehler verwenden.
Auf den Member kann nur über Formulare zugegriffen werden, die in derselben Domäne wie das zurzeit geöffnete Formular ausgeführt werden, oder über Formulare, denen domänenübergreifende Berechtigungen erteilt wurden.
Auf diesen Typ oder diesen Member kann über Code zugegriffen werden, der in Formularen ausgeführt wird, die mit Microsoft InfoPath Filler oder einem Webbrowser geöffnet wurden.
Beispiele
Im folgenden Beispiel wird die Site-Eigenschaft, die die XmlValidatingEventArgs-Klasse von der XmlEventArgs-Klasse erbt, zum Prüfen des Wertes des Knotens verwendet, der das Validating-Ereignis ausgelöst hat. Wenn die Datenüberprüfung fehlerhaft ist, wird die ReportError-Methode verwendet, um einen benutzerdefinierten Fehler zu erstellen:
public void field1_Validating(object sender, XmlValidatingEventArgs e)
{
if (e.Site.InnerXml != String.Empty)
{
int fieldValue = int.Parse((e.Site.InnerXml));
if (fieldValue > 50)
{
e.ReportError(e.Site,
false,
"Invalid quantity",
"The total number cannot exceed 50.");
}
if (fieldValue < 0)
{
e.ReportError(e.Site,
false,
"Invalid quantity",
"The total number cannot be less than 0.");
}
}
}
Public Sub field1_Validating(ByVal sender As Object , _
ByVal e As XmlValidatingEventArgs)
If (e.Site.InnerXml <> String.Empty) Then
Integer fieldValue = Integer.Parse((e.Site.InnerXml))
If (fieldValue > 50) Then
e.ReportError(e.Site,
false,
"Invalid quantity",
"The total number cannot exceed 50.")
End If
If (fieldValue < 0) Then
e.ReportError(e.Site,
false,
"Invalid quantity",
"The total number cannot be less than 0.")
End If
End If
End Sub