Событие _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