Я подозреваю, что вы используете исходную версию (RTM) .NET 2.0.
До начала 2007 года элементы управления валидатора не были совместимы с UpdatePanels. Это было решено с помощью SP1 .NET Framework.
Источник проблемы заключается в том, что UpdatePanel может обнаруживать изменения разметки на вашей странице, но у него нет возможности правильно отслеживать сценарии. Валидаторы сильно зависят от сценариев. При частичной обратной передаче сценарии либо удаляются, либо не обновляются, либо не запускаются, когда они предназначены.
В ранних бета-версиях MS пыталась UpdatePanel угадать , какие сценарии нужно было перерисовать или запустить. Это не сработало очень хорошо, и им пришлось его убрать.
Чтобы обойти насущную проблему, Microsoft выпустила исправленную версию классов валидатора в новой DLL-библиотеке Validators.DLL и дала инструкции о том, как указать ASP.NET использовать эти классы вместо реальных. Если вы Google для этого имени DLL, вы должны найти больше информации. См. Также Это сообщение в блоге .
Это была мера остановки, и вам следует не использовать ее избегать ее, если это возможно .
Реальное решение проблемы появилось вскоре после этого, в .NET 2.0 SP1. Microsoft представила новый механизм регистрации скриптов в SP1 и изменила классы реального валидатора, чтобы использовать этот механизм вместо старого.
Позвольте мне дать вам некоторые подробности об изменениях:
Традиционно вы должны были регистрировать сценарии с помощью методов Page, таких как Page.RegisterStartupScript () и Page.RegisterClientScriptBlock (). Проблема в том, что эти методы не были разработаны для расширяемости, и UpdatePanel не имел возможности отслеживать эти вызовы.
В SP1 на странице есть новый объект свойства с именем Page.ClientScripts. Этот объект имеет методы для регистрации скриптов, которые эквивалентны (а в некоторых отношениях лучше) оригинальным. Кроме того, UpdatePanel может отслеживать эти вызовы, чтобы при необходимости перезапускать или вызывать методы. Старые методы RegisterStartupScript () и т. Д. Устарели. Они все еще работают, но не внутри UpdatePanel.
Нет никаких причин (кроме политики, я полагаю), чтобы не обновлять ваши установки до .NET 2.0 SP1. Пакеты обновления содержат важные исправления.
Удачи.