2014-02-02 3 views
0

У меня есть веб-сайт, который использует ASP.NET C# для сценариев на стороне сервера, из которых главным образом все элементы управления сервером динамически добавляются в элемент управления UpdatePanel на странице во время события Page_Init. Следующий фрагмент кода:ASP.NET UpdatePanel PreRender issues

contentPanel.ContentTemplateContainer.Controls.Add(new LiteralControl("<script>" + clientScriptText + "</script>")); 

существует в моем случае Page_Init (ContentPanel это имя моего UpdatePanel). Идея заключается в том, что это позволит мне запустить функцию JavaScript alert() из кода позади, установив «alert (\" - string - \ ")" как значение 'clientScriptText'. Я протестировал это, поместив этот код в событие PreRender UpdatePanel (поскольку это событие UpdatePanel, а не событие PreRender страницы, это не должно быть факторами жизненного цикла страницы ASP.NET, которые вызывают проблему, не так ли?), Но хотя события, когда страница отображается, предупреждение не появляется. Мой код для этого показан ниже:

protected void contentPanel_PreRender(object sender, EventArgs e) 
     { 
      clientScriptText = "alert(\"Hello\")"; 
      contentPanel.Update(); //Doesn't work with or without this 
     } 

Может кто-нибудь понять, что может быть неправильным? Спасибо.

+0

Возможный дубликат [панель обновления с ClientScriptManager] (http://stackoverflow.com/questions/7043895/update-panel-with-clientscriptmanager) – fejesjoco

ответ

0

Вам необходимо запустить код JavaScript с помощью ScriptManager. UpdatePanel имеет свои собственные методы жизненного цикла и рендеринга, а ScriptManager был создан именно для решения проблем с JS-кодом. Вне UpdatePanel вы должны использовать ClientScriptManager.