Я нашел обходной путь в коде сервера, чтобы отключить валидаторы, не влияя на поведение страницы.
В событии LoadPostData элемента управления я отключаю каждый валидатор страницы, если обратный вызов поступает из элемента управления.И я понимаю, что это не влияет на поведение, так как реальный статус (свойство enable) валидатора не изменяется.Что я имею в виду: если я делаю обратный вызов, где я отключил все валидаторы, чтобы они не запускались, а затем я делаю обратную передачу, валидаторы все еще работают должным образом (если они были включены до предыдущего обратного вызова)
Код, который я использовал:
public virtual bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
{
if (postCollection["__CALLBACKID"] == this.UniqueID)
foreach (IValidator validator in Page.Validators)
(validator as WebControl).Enabled = false;
}
Я использую "_ CALLBACKID" для проверки источника обратного вызова, потому что "postCollection [" _EVENTTARGET "]" равен нулюмы в обратном вызове, а не в обратном вызове