Поделиться через


Событие _DataDOMEventSink_Event.OnValidate

Возникает после принятия изменений в базовом XML-документе формы, но до события OnAfterChange.

Пространство имен: Microsoft.Office.Interop.InfoPath.SemiTrust
Сборка: Microsoft.Office.Interop.InfoPath.SemiTrust (в microsoft.office.interop.infopath.semitrust.dll)

Синтаксис

'Декларация
Event OnValidate As _DataDOMEventSink_OnValidateEventHandler
'Применение
Dim instance As _DataDOMEventSink_Event
Dim handler As _DataDOMEventSink_OnValidateEventHandler

AddHandler instance.OnValidate, handler
event _DataDOMEventSink_OnValidateEventHandler OnValidate

Заметки

Этот обработчик событий не разрешает пользователям отменять операцию.

В ходе события OnValidate базовому XML-документу формы назначается режим "только чтение".

Событие OnValidate обычно служит для обработки ошибок и работы с коллекцией ErrorsCollection — например для добавления новых ошибок или удаления существующих.

ЗаметкаЗаметка

В ряде случаев события, связанные с изменениями в базовом XML-документе формы, могут происходить не однажды. Например, при изменении существующих данных выполняются операции вставки и удаления.

Пример

В следующем примере свойство Site объекта DataDOMEventObject служит для проверки значения узла. Если данные проверку не проходят, с помощью метода ReportError создается настраиваемая ошибка:

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.OnValidate)]
public void field1_OnValidate(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");
 }
}

См. также

Ссылка

Интерфейс _DataDOMEventSink_Event
Члены _DataDOMEventSink_Event
Пространство имен Microsoft.Office.Interop.InfoPath.SemiTrust