Хорошо, это похоже на вопрос, на который должно быть легко ответить, но, как и в случае с большим количеством смешения asp.net и jQuery, это немного кошмар.
То, что я хочу сделать, это бытьзатухание div
в разное время во время просмотра клиентом моей страницы asp.net;Я потушил его, используя fadeTo()
в jQuery, прежде чем запускать обновление UpdatePanel (чтобы указать, что данные там не свежие), и я хочу добавить его снова после обновления UpdatePanel.Я дошел до обновления UpdatePanel в коде, и это приводит к изменению содержимого div
... но как мне снова вернуть div
обратно?
СпособЯ вижу это, есть 2 пути;зарегистрировать обработчик событий при загрузке страницы, чтобы определить, когда содержимое div
было изменено, и снова его добавить, или вызвать функцию из кода asp.net, когда я обновил div
, чтобы вернуть его обратно в.
В первом случае, похоже, нет события, вызванного изменением содержимого div
, поэтому я не могу этого сделать.Если кто-нибудь знает, как я могу получить событие клиента для запуска при обновлении div
, это было бы хорошим решением.
Во втором случае я подумал, что это то, для чего был ClientScriptManager
,но это не совсем то, что я хочу.Я хочу иметь возможность зарегистрировать определенную функцию Javascript с помощью ClientScriptManager
и затем сказать ClientScriptManager
, чтобы она выполнялась на клиенте из моего кода.Вы не можете этого делать.ClientScriptManager.RegisterClientScriptBlock()
просто вставляет некоторые <script>
в вывод HTML, а не вызывает функцию.Предположительно, это сработало бы, если бы я продолжал регистрировать такие вещи, как:
<script>fadeBackIn();</script>
, потому что Javascript будет немедленно оценен и запущен, но это кажется грязным, и это чувство усиливается тем фактом, что я должен сохранитьслучайным образом генерирует новое уникальное значение для аргумента key
, равного ClientScriptManager.RegisterClientScriptBlock()
, поскольку оно специально разработано для остановки такого рода повторяющегося кода.Тем не менее, я изо всех сил пытаюсь увидеть альтернативу.Может кто-нибудь придумать хорошую идею относительно лучшего механизма, чтобы заставить это работать?
Я действительно хотел бы что-то вроде:
ClientScriptManager.RegisterClientScriptFunction("fadeBackIn", "function fadeBackIn(){ ... }");
[...]
ClientScriptManager.ExecuteClientScriptFunction("fadeBackIn");
, но я неувидеть, что функциональность доступна.: - (