Как извлечь весь код JavaScript из пользовательского элемента управления в коде позади - PullRequest
2 голосов
/ 17 февраля 2012

На событии PreRender моей страницы я решаю сделать response.redirect().Это означает, что ни один из javascript, заключенных в теги <script language="JavaScript" type="text/javascript"> на этой странице, не будет выполнен.

Я хочу сделать следующее:

String allJavaScript = MagicFunctionThatReturnsAllJSInTheControl(someUserControl)

ClientScript.RegisterClientScriptBlock("".GetType(), "s", allJavaScript );

Response.Redirect("~/newpage.aspx",false);

Знаете ли вы, как один код вC # / vb.net MagicFunctionThatReturnsAllJSInTheControl(someUserControl)

Спасибо

1 Ответ

2 голосов
/ 17 февраля 2012

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

Итак, вы хотите, чтобы скрипты в currentpage.aspx выполнялись на клиентедаже если вы находитесь в процессе перенаправления на newpage.aspx.В этой ситуации вы можете избежать Response.Redirect() и выполнить перенаправление на клиенте:

string redirectScript = String.Format(CultureInfo.InvariantCulture,
    "window.location.href = '{0}';", ResolveUrl("~/newpage.aspx"));

ClientScript.RegisterClientScriptBlock(GetType(), "redirectScript",
    redirectScript, true);

Таким образом, клиент должен загрузить страницу и выполнить скрипты внутри, а затем загрузить newpage.aspx.Если вы можете сделать так, чтобы исходная страница была кратко видна во время загрузки перенаправленной страницы, это может решить вашу проблему.

...