【问题标题】:UpdateProgress Not working when called thru javascriptUpdateProgress 通过javascript调用时不起作用
【发布时间】:2011-12-14 21:40:13
【问题描述】:

当我单击更新面板中的按钮时,我会看到更新进度,但是当我尝试通过 javascript 执行此操作时 $("#").click();未显示更新进度,但更新面板正在正确刷新。知道为什么更新进度不起作用吗?

<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>

【问题讨论】:

  • 我在没有修改的情况下尝试了您的代码,并显示“正在加载...”
  • 根据@Yuriy 的回答,在您的情况下,脚本可能加载速度很快,但在我的实际应用程序页面中,页面很重,并且其中有很多 javascript。
  • 我让它睡着了,所以没有。无论如何,我不再使用 UpdatePanel,它的问题太多了。

标签: asp.net asp.net-ajax


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    相关资源
    最近更新 更多