_DataDOMEventSink_Event.OnValidate Событие
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Происходит после принятия изменений в базовом XML-документе формы, но до возникновения OnAfterChange события.
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
Тип события
Примеры
В следующем примере Site свойство DataDOMEventObject объекта используется для проверка значения узла. Если проверка данных завершается сбоем ReportError(Object, String, Boolean, String, Int32, String) , метод используется для создания пользовательской ошибки:
[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");
}
}
В следующем примере Site свойство DataDOMEventObject объекта используется для проверка значения узла. Если проверка данных завершается сбоем ReportError(Object, String, Boolean, String, Int32, String) , метод используется для создания пользовательской ошибки:
[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");
}
}
Комментарии
Этот обработчик событий не разрешает пользователям отменять операцию.
В ходе события OnValidate базовому XML-документу формы назначается режим "только чтение".
Событие OnValidate обычно используется для обработки ошибок и работы с ErrorsCollection коллекцией, например для добавления новых ошибок или удаления существующих.
Примечание. В некоторых случаях события, связанные с изменениями в базовом XML-документе формы, могут происходить несколько раз. Например, при изменении существующих данных выполняются операции вставки и удаления.