【问题标题】:Javascript not executing after partial rendering部分渲染后 Javascript 未执行
【发布时间】:2010-11-15 21:53:42
【问题描述】:

我有一个 asp.net 面板,它最初是隐藏的,并在单击按钮时显示。该面板中有javascript,并且在面板设置为可见后它不会执行。我可以看到 javascript 函数在页面上输出,但没有被调用。我该怎么做才能调用该函数?这是一个例子:

<asp:LinkButton id="lbtn" runat="server" Text="show" OnClick="lbtn_Click" />
    <asp:UpdatePanel id="upnl" runat="server" UpdateMode="Conditional">
       <contenttemplate>
        <asp:panel id="pnlContent" runat="server" visible="false">
            content initially hidden.

            <script>
                alert('done!');
            </script>
        </asp:panel>
    </contenttemplate>
    <triggers>
        <asp:AsyncPostBackTrigger ControlID="lbtn"/>
    </triggers>
</asp:UpdatePanel>

【问题讨论】:

    标签: javascript asp.net updatepanel renderpartial


    【解决方案1】:

    您可能希望在调用 ajax 方法时调用某种结束请求方法。这必须在脚本资源下。

    <script type="text/javascript">
    
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function(sender, args){ alert("endRequest"); });
    
    </script>
    

    【讨论】:

      【解决方案2】:

      与其这样做,不如使用Page.ClientScript.RegisterStartupScript()l 来触发它运行。

      【讨论】: