_DataDOMEventSink_Event.OnValidate Evento
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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) > 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) < 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) > 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) < 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.