XmlValidatingEventArgs.ReportError, méthode (XPathNavigator, Boolean, String, String, Int32)
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, _
errorCode As Integer _
)
'Utilisation
Dim instance As XmlValidatingEventArgs
Dim node As XPathNavigator
Dim siteIndependent As Boolean
Dim message As String
Dim messageDetails As String
Dim errorCode As Integer
instance.ReportError(node, siteIndependent, _
message, messageDetails, errorCode)
public abstract void ReportError(
XPathNavigator node,
bool siteIndependent,
string message,
string messageDetails,
int errorCode
)
Paramètres
- node
Type : System.Xml.XPath.XPathNavigator
XPathNavigator placé sur le nœud qui contient les données auxquelles est associée l'erreur.
- 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 validation du formulaire, 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é.
- errorCode
Type : System.Int32
Nombre à utiliser en tant que code d'erreur.
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.",
12345);
}
if (fieldValue < 0)
{
e.ReportError(e.Site,
false,
"Invalid quantity",
"The total number cannot be less than 0.",
12346);
}
}
}
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)
End If
If (fieldValue < 0) Then
e.ReportError(e.Site,
false,
"Invalid quantity",
"The total number cannot be less than 0.",
12346)
End If
End If
End Sub