Compartilhar via


_DataDOMEventSink_Event.OnValidate Evento

Definição

Ocorre depois que alterações no documento XML subjacente de um formulário foram aceitas, mas antes do OnAfterChange evento ocorrer.

public:
 event Microsoft::Office::Interop::InfoPath::SemiTrust::_DataDOMEventSink_OnValidateEventHandler ^ OnValidate;
event Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnValidateEventHandler OnValidate;
member this.OnValidate : Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnValidateEventHandler 
Event OnValidate As _DataDOMEventSink_OnValidateEventHandler 

Tipo de evento

Exemplos

No exemplo a seguir, a Site propriedade do DataDOMEventObject objeto é usada para marcar o valor do nó. Se a validação de dados falhar, o ReportError(Object, String, Boolean, String, Int32, String) método será usado para criar um erro personalizado:

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.<span class="label">OnValidate</span>)]
public void field1_<span class="label">OnValidate</span>(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) &gt; 50)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot exceed 50.", 
   false,
   "",
   2,
   "modeless");
 }

 if (int.Parse(e.Site.text) &lt; 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

No exemplo a seguir, a Site propriedade do DataDOMEventObject objeto é usada para marcar o valor do nó. Se a validação de dados falhar, o ReportError(Object, String, Boolean, String, Int32, String) método será usado para criar um erro personalizado:

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.<span class="label">OnValidate</span>)]
public void field1_<span class="label">OnValidate</span>(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) &gt; 50)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot exceed 50.", 
   false,
   "",
   2,
   "modeless");
 }

 if (int.Parse(e.Site.text) &lt; 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

Comentários

Esse manipulador de eventos não permite que os usuários cancelem uma operação.

Durante o evento OnValidate , o documento XML subjacente do formulário é colocado no modo somente leitura.

O evento OnValidate normalmente é usado para lidar com erros e trabalhar com a ErrorsCollection coleção , por exemplo, adicionando novos erros ou excluindo os existentes.

Observação: em alguns casos, eventos relacionados a alterações no documento XML subjacente de um formulário podem ocorrer mais de uma vez. Por exemplo, quando os dados existentes são alterados, ocorre uma operação de inserção e exclusão.

Aplica-se a