ASP.NET UpdatePanel: внедрение Javascript при обновлении UpdatePanel

Есть ли какие-либо потенциальные побочные эффекты для приведенного ниже решения по внедрению JavaScript из содержимого обновленного UpdatePanel?

Код для 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());
    };
}

Я видел другие решения для внедрения JavaScript после обновлений UpdatePanel, но ничего, что позволяло бы внедрять JavaScript внутри тегов script в контенте.

Есть ли причина для этого? Безопасность может быть?


person Seb Nilsson    schedule 18.12.2012    source источник


Ответы (1)


Вы можете использовать статический метод RegisterClientScriptBlock класса ScriptManager

person Jack Spektor    schedule 19.12.2012