ASP.NET UpdatePanel:在 UpdatePanel 更新上注入 Javascript

Posted

技术标签:

【中文标题】ASP.NET UpdatePanel:在 UpdatePanel 更新上注入 Javascript【英文标题】:ASP.NET UpdatePanel: Injecting Javascript on UpdatePanel update 【发布时间】:2012-12-05 23:30:43 【问题描述】:

以下从更新的UpdatePanel 的内容中注入 JavaScript 的解决方案是否有任何潜在的副作用

UpdatePanel 的代码如下所示:

<asp:UpdatePanel>
    <asp:PlaceHolder ID="pnlScriptContent" Visible="false" runat="server">
        <script id="script-content">
            alert('Script was loaded correctly!');
        </script>
    </asp:PlaceHolder>

    <asp:Button OnClick="ButtonClick" OnClientClick="LoadScript()" />
</asp:UpdatePanel>

点击Button 的代码隐藏显示面板pnlScriptContent

protected void ButtonClick(object sender, EventArgs args)

    pnlScriptContent.Visible = true;

javascript 代码如下所示:

var LoadScript = function() 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function (sender, args) 
        eval($('#script-content').html());
    ;

我见过其他在 UpdatePanel 更新后注入 JavaScript 的解决方案,但没有任何方法允许在内容中的 script-tags 中注入 JavaScript。

这是有原因的吗?安全可能吗?

【问题讨论】:

【参考方案1】:

你可以使用ScriptManager类的RegisterClientScriptBlock静态方法

【讨论】:

以上是关于ASP.NET UpdatePanel:在 UpdatePanel 更新上注入 Javascript的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET DropDown SelectedIndexChanged 未在 Firefox 中使用 UpdatePanel 触发

从 UpdatePanel Asp.Net 中排除控件

Asp.net WebForm 中 UpdatePanel 内的模板文本框字段

Asp.Net,UpdatePanel 中的文本框文本更改问题

ASP.NET UpdatePanel 的 Select2 JQuery 问题

带有 ASP.NET 复选框触发器的 asp:UpdatePanel