Freigeben über


XmlValidatingEventArgs.ReportError-Methode (XPathNavigator, Boolean, String, String, Int32, ErrorMode)

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, _
    errorCode As Integer, _
    errorMode As ErrorMode _
)
'Usage
Dim instance As XmlValidatingEventArgs
Dim node As XPathNavigator
Dim siteIndependent As Boolean
Dim message As String
Dim messageDetails As String
Dim errorCode As Integer
Dim errorMode As ErrorMode

instance.ReportError(node, siteIndependent, message, messageDetails, errorCode, errorMode)
public abstract void ReportError (
    XPathNavigator node,
    bool siteIndependent,
    string message,
    string messageDetails,
    int errorCode,
    ErrorMode errorMode
)

Parameter

  • node
    Ein XPathNavigator-Objekt an dem Knoten, der die Daten enthält, denen der Fehler zugeordnet ist.
  • siteIndependent
    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
    Der Text, der für die kurze Fehlermeldung verwendet werden soll.
  • messageDetails
    Der Text, der für die ausführliche Fehlermeldung verwendet werden soll.
  • errorCode
    Die Zahl, die als Fehlercode verwendet werden soll.
  • errorMode
    Ein ErrorMode-Objekt, das angibt, ob der Fehler in einem modalen Dialogfeld angezeigt wird, oder ohne Modus und wellenförmig unterstrichen in dem betreffenden Steuerelement.

Ausnahmen

Ausnahmetyp Bedingung

ArgumentException

Die an diese Methode übergebenen Parameter sind ungültig.

ArgumentNullException

Die an diese Methode übergebenen Parameter sind null.

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ültigkeitseinschrä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 nur über Code zugegriffen werden, der in Formularen ausgeführt wird, die mit Microsoft Office InfoPath 2007 geöffnet wurden.

Beispiel

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.",
            12345,
            ErrorMode.Modeless);
      }

      if (fieldValue < 0)
      {
         e.ReportError(e.Site,
            false,
            "Invalid quantity",
            "The total number cannot be less than 0.",
            12346,
            ErrorMode.Modeless);
      }
   }
}
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.",
            12345,
            ErrorMode.Modeless)
      End If

      If (fieldValue < 0) Then
         e.ReportError(e.Site,
            false,
            "Invalid quantity",
            "The total number cannot be less than 0.",
            12346,
            ErrorMode.Modeless)
      End If
   End If
End Sub

Siehe auch

Referenz

XmlValidatingEventArgs-Klasse
XmlValidatingEventArgs-Member
Microsoft.Office.InfoPath-Namespace