【问题标题】:UpdateProgress won't show when causing an UpdatePanel to refresh with javascript使用 javascript 导致 UpdatePanel 刷新时不会显示 UpdateProgress
【发布时间】:2012-02-17 23:03:18
【问题描述】:

我有一个 UpdatePanel,在更新面板内我有一个按钮。更新面板还有一个与之关联的更新进度控件,以便在更新面板进行回发时显示加载图形。

如果我单击更新面板中的按钮,那么进度加载器就会正常显示。但是,如果我使用 jQuery 选择按钮并执行 .click() 加载程序不会出现。面板确实回发并正确加载内容,但进度加载器未触发。

任何想法为什么会这样?

【问题讨论】:

    标签: asp.net .net ajax webforms updatepanel


    【解决方案1】:

    我刚刚尝试过您的方案。它在这里工作正常。

    这里是html

        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:UpdateProgress runat="server" ID="UpdateProgress1">
                    <ProgressTemplate>
                        <img src="Images/ajax-loader.gif" />
                    </ProgressTemplate>
                </asp:UpdateProgress>
                <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
            </ContentTemplate>
        </asp:UpdatePanel>
    
        <input id="btnTest" title="JQuery Click" onclick="ClickButton1()" type="button"  value="JQuery Click" />
    
        <script type="text/javascript">
            function ClickButton1() {     
          //  alert('#<%=Button1.ClientID %>');
            $('#<%=Button1.ClientID %>').click();
            }
        </script>
    

    这是显示加载图像 5 秒的后端代码

     protected void Button1_Click(object sender, EventArgs e)
     {
        Thread.Sleep(5000);
     }
    

    【讨论】:

    • 这对我不起作用。另外,UpdateProgress 通常不是放在 UpdatePanel 之外吗? (我都试过了,但都不适合我;UpdatePanel 有效,但 UpdateProgress 无效:()。
    【解决方案2】:

    我从来没有找到这个问题的答案,但这没关系。我了解到,更新面板一次只发出一个请求是有原因的。页面生命周期和视图状态不能被破坏,因此异步请求一次只能发出一个。

    MVC 赢得胜利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-26
      • 2011-08-30
      相关资源
      最近更新 更多