Блоки проверки допустимости ASP.NET в UpdatePanel

Есть ли параметр, а «Bunch of code» возвращает функцию?

var a = function(x) { return function() { document.write(x); } }(something);

Закрытие. Значение something используется функцией, назначенной a. something может иметь какое-то переменное значение (для цикла) и каждый раз, когда a имеет новую функцию.

14
задан splattne 3 November 2008 в 15:26
поделиться

4 ответа

Я подозреваю, что Вы выполняете первоначальную версию (RTM).NET 2.0.

, До элементы управления проверки правильности начала 2007 года не были совместимы с UpdatePanels. Это было разрешено с SP1 Платформы.NET.

источник проблемы - то, что 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. Пакеты обновления несут важные меры.

Удача.

21
ответ дан 1 December 2019 в 12:02
поделиться

@Jonathan Голландия: Что не так с использованием Validators.dll?

, Так как они заменяют исходные классы, Вы бесшумно обходите любые исправления ошибок и исправления безопасности, улучшения, и т.д. который Microsoft могла бы выпустить в будущем (или, возможно, уже выпустил). Если Вы не смотрите тщательно на web.config, Вы никогда не могли бы замечать пропуск патчей.

, Конечно, необходимо оценить каждую ситуацию. Если Вы абсолютно застреваете с помощью.NET 2.0 RTM, то Validators.dll лучше чем ничего.

3
ответ дан 1 December 2019 в 12:02
поделиться

@jmein

На самом деле проблема состоит в том, что клиентский сценарий Блока проверки допустимости не работает при размещении в updatePanel (обновление UpdatePanels с помощью .innerHTML, который добавляет узлы сценария как текстовые узлы, не узлы сценария, таким образом, браузер не выполняет их).

фиксация была патчем, выпущенным Microsoft, которая устраняет эту проблему. Я нашел его с помощью Google.

http://blogs.msdn.com/mattgi/archive/2007/01/23/asp-net-ajax-validators.aspx

2
ответ дан 1 December 2019 в 12:02
поделиться

Если для того, что когда-либо рассуждает, Вы неспособны использовать udpated версию элементов управления проверки правильности ASP.NET, на самом деле очень легко проверить группу проверки сами, все, что необходимо сделать, звонить

Page_ClientValidate("validationGroupName");

Тогда, можно использовать PageRequestManager, выполняют проверку, как Вам нужно.

Определенно использование обновленных средств управления проверкой является способом пойти, но я довольно неравнодушен к JavaScript;)

-1
ответ дан 1 December 2019 в 12:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: