Подтвердить что ты не робот

Выполнить функцию javascript после обратной передачи asp.net без Ajax

Я хочу выполнить функцию javascript после asp.net postback без использования ajax.

Я пробовал следующее по моему методу без везения:

Page.ClientScript.RegisterStartupScript(GetType(), "ShowPopup", "showCheckOutPopIn('Livraison',556);");
4b9b3361

Ответ 1

Вы должны использовать класс ScriptManager, поскольку свойство Page.ClientScript устарело...

Класс ClientScriptManager является новым в ASP.NET 2.0 и заменяет методы класса страницы для управления скриптами, которые теперь устарели.
Ссылка: MSDN - Свойство page.ClientScript

Преимущество ScriptManager заключается в том, что он работает с асинхронными обратными передачами, поэтому, если вы используете AJAX, он не будет работать с ClientScriptManager.

Ваш код будет выглядеть так:

ScriptManager.RegisterStartupScript(this, this.GetType(), "ShowPopup", "showCheckOutPopIn('Livraison',556);", true);

Обратите внимание также, что если вы используете AJAX и имеете кусок кода javascript, который вы хотите выполнить при нескольких обратных передачах, то вы должны ссылаться на свою UpdatePanel в firstargument, например:

ScriptManager.RegisterStartupScript(MainUpdatePanel, typeof(string), "ShowPopup", "showCheckOutPopIn('Livraison',556);", true);

Ответ 3

Я не помню, что такое точный синтаксис/использование для материала page.ClientScript... похоже, что он должен работать небрежно. Но если push наступает, просто используйте простой пользовательский элемент управления, который можно включить/отключить динамически, чтобы выписать метод javascript в блоках script после обратной передачи. Когда страница загружается, этот script выполняет любую функциональность, которую вы хотите выполнить.

конечно, вопрос в том, что этот javascript должен делать, что вы не могли просто сделать на сервере с помощью какого-либо свойства или другого параметра, которые отражались бы в разметке?

Ответ 4

У этого человека была такая же проблема, я думаю, и его решение тоже сработало для меня:

http://forums.asp.net/t/1121450.aspx?HOW+TO+run+javascript+on+each+partial+postback+

И решение просто использует функцию класса ScriptManager: ScriptManager.RegisterStartupScript(this, typeof(Sections), "Initialize", "initialize();", true);

Ответ 5

Возможно, поздно, но вы можете так использовать

Мастер-страница:

   ScriptManager.RegisterStartupScript(this, typeof(Page),
            "ShowRegister", string.Format(@"$( document ).ready(function() {{ShowErrorMessage('{0}');}});", message), true);true);

Веб-форма:

 Page.ClientScript.RegisterClientScriptBlock(GetType(), "MEssage",
                          "$( document ).ready(function() {
ShowMessage('{0}');", true);