XmlEvent.Validating (Evento)

Ocurre después de haber aceptado los cambios efectuados en el documento XML subyacente de un formulario, pero antes de que ocurra el evento Changed.

Espacio de nombres: Microsoft.Office.InfoPath
Ensamblado: Microsoft.Office.InfoPath (en microsoft.office.infopath.dll)

Sintaxis

Public Event Validating As XmlValidatingEventHandler

Dim instance As XmlEvent
Dim handler As XmlValidatingEventHandler

AddHandler instance.Validating, handler
public abstract event XmlValidatingEventHandler Validating

Excepciones

Tipo de excepción Condición

InvalidOperationException

El programador intentó enlazar el evento en una ubicación que no es el método InternalStartup.

InvalidOperationException

El programador intentó agregar varios delegados para la misma expresión de XPath especificando un nodo o grupo. Sólo se puede agregar un delegado para este evento por cada expresión de XPath para un nodo o grupo.

InvalidOperationException

El programador intentó enlazar el evento a un nodo de un origen de datos secundario. Este evento no se puede usar para orígenes de datos secundarios.

Comentarios

Importante:

El programador no debe crear instancias del evento Validating en el código de formulario. Al agregar un controlador de eventos a la plantilla de formulario desde la interfaz de usuario del modo de diseño, Microsoft Office InfoPath 2007 genera código en el método InternalStartup del archivo de código del formulario utilizando la clase EventManager y el miembro de la clase XmlEvent para enlazar eventos del nivel de documento a sus controladores de eventos. Para obtener información sobre cómo agregar controladores de eventos en el modo de diseño de InfoPath, vea Cómo agregar un controlador de eventos.

El evento Validating se enlaza utilizando el delegado XmlValidatingEventHandler.

Este controlador de eventos no permite a los usuarios cancelar una operación.

Durante el evento Validate, el documento XML subyacente del formulario se pone en modo de sólo lectura.

El evento Validate se suele utilizar para controlar errores y trabajar con la colección FormErrorCollection, por ejemplo, para agregar errores nuevos o eliminar los existentes.

Se puede tener acceso a este tipo o miembro desde un código ejecutado en formularios abiertos en Microsoft Office InfoPath 2007 o en un explorador Web.

Ejemplo

En el siguiente ejemplo, una vez que se ha aceptado un cambio para field9, se desencadena el evento Validating y un objeto FormError asociado a field6 se agrega a la colección FormErrorCollection del formulario mediante el método Add.

Así se asocia un mensaje de error a field6. La cadena que se pasa como parámetro message del método Add se muestra en una sugerencia en pantalla cuando el usuario sitúa el puntero del mouse (ratón) sobre field6. Si el usuario hace clic con el botón secundario en field6 y, a continuación, hace clic en Descripción completa del error, InfoPath muestra el mensaje de error completo, incluida la cadena que se ha pasado como parámetro messageDetails del método Add.

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

Vea también

Referencia

XmlEvent (Clase)
XmlEvent (Miembros)
Microsoft.Office.InfoPath (Espacio de nombres)