UpdateProgress通过javascript调用时不起作用

时间:2011-10-25 12:14:07

标签: asp.net asp.net-ajax

当我点击更新面板中的按钮时,我会看到更新进度,但是当我尝试通过javascript $(“#<%= LinkBut​​ton1.ClientID%>”)执行此操作时。单击();不显示updateprogress,但更新面板正在正确刷新。任何想法为什么更新进度不起作用?

<asp:UpdatePanel runat="server" ID="UpdPnl1" UpdateMode="Conditional" >  
    <ContentTemplate>  
      <asp:Button ID="Button1" runat="server" onclick="Button1_Click"   Text="click"/>
       <asp:PlaceHolder ID="Place1" runat="server"></asp:PlaceHolder>
     </ContentTemplate>
</asp:UpdatePanel>

<asp:UpdateProgress ID="updQuoteProgress" runat="server"  AssociatedUpdatePanelID="UpdPnl1"  DisplayAfter="0">
        <ProgressTemplate>Loading...</ProgressTemplate>    
</asp:UpdateProgress>

    <script type="text/javascript">    
        $(document).ready(function () {
            $("#<%=Button1.ClientID %>").click();
        })  
    </script>

1 个答案:

答案 0 :(得分:4)

这是因为Sys.Application加载事件发生在页面的DOM完全加载之后。当您的脚本执行负责在部分回发时显示UpdateProgress的客户端对象尚未初始化时。 请尝试使用此脚本(将其放在ScriptManager控件下方或仅在页面末尾):

<script type="text/javascript">
     Sys.Application.add_load(function () { $("#<%= Button1.ClientID %>").click(); });
</script>

您还可以使用以下脚本延迟脚本执行:

$(function () {
     setTimeout('$("#<%= Button1.ClientID %>").click();', 10);
});