Partager via


XmlValidatingEventArgs.ReportError, méthode (XPathNavigator, Boolean, String, String)

Crée un objet FormError qui contient des informations d'erreur personnalisées avec les valeurs spécifiées et les ajoute à l'objet FormErrorCollection du formulaire.

Espace de noms :  Microsoft.Office.InfoPath
Assembly :  Microsoft.Office.InfoPath (dans Microsoft.Office.InfoPath.dll)

Syntaxe

'Déclaration
Public MustOverride Sub ReportError ( _
    node As XPathNavigator, _
    siteIndependent As Boolean, _
    message As String, _
    messageDetails As String _
)
'Utilisation
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
)

Paramètres

  • siteIndependent
    Type : System.Boolean
    Définit la condition relative à la suppression automatique de l'objet FormError. Si la valeur est true, l'objet FormError est supprimé lorsqu'une modification survient sur l'un des nœuds correspondant à l'expression XPath associée à la propriété Match de cet objet d'événement. Si la valeur est false, l'objet FormError est supprimé la prochaine fois que le formulaire est validé, uniquement si le nœud renvoyé par la propriété Site de cet objet événement a été modifié.
  • message
    Type : System.String
    Texte à utiliser pour le message d'erreur court.
  • messageDetails
    Type : System.String
    Texte à utiliser pour le message d'erreur détaillé.

Exceptions

Exception Condition
ArgumentException

Les paramètres transmis à cette méthode ne sont pas valides.

ArgumentNullException

Les paramètres transmis à cette méthode sont une référence NULL (Nothing dans Visual Basic).

Remarques

La méthode ReportError est utilisée pour créer une erreur personnalisée pour une erreur qui s'est produite pendant l'événement Validating.

Lorsque la méthode ReportError est appelée, InfoPath crée un objet FormError et l'ajoute à la collection FormErrorCollection du formulaire actif. Les objets FormError sont supprimés de la collection lorsque la contrainte de validation redevient valide. Dans certains cas, ils peuvent être explicitement supprimés à l'aide des méthodes Delete ou DeleteAll.

Les objets FormError peuvent également être créés à l'aide de la méthode Add de la classe FormErrorCollection.

Notes

Les erreurs indépendantes d'un site doivent être utilisées lorsque vous souhaitez que les erreurs s'appliquent à tous les nœuds du même type. Si vous souhaitez que l'erreur s'applique à un nœud spécifique, utilisez des erreurs dépendantes d'un site.

Ce membre est accessible uniquement par les formulaires qui s’exécutent dans le même domaine que le formulaire ouvert ou par les formulaires qui disposent d’autorisations valables pour plusieurs domaines.

Ce type ou ce membre est accessible à partir du code exécuté dans les formulaires ouverts dans Microsoft InfoPath Filler ou dans un navigateur Web.

Exemples

Dans l'exemple suivant, la propriété Site que la classe XmlValidatingEventArgs hérite de la classe XmlEventArgs est utilisée pour vérifier la valeur du nœud qui a renvoyé l'événement Validating. Si la validation des données échoue, la méthode ReportError est utilisée pour créer une erreur personnalisée.

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

Voir aussi

Référence

XmlValidatingEventArgs Classe

XmlValidatingEventArgs, membres

ReportError, surcharge

Microsoft.Office.InfoPath, espace de noms