Updatepanel的Updateprogress在加载时不显示

时间:2014-03-20 20:11:06

标签: jquery asp.net ajax updatepanel

我将大量数据填充到Asp.net转发器控件中。我需要实现一个" loading"消息,直到数据加载。我尝试使用Updatepanel/Updateprogress组合,但到目前为止,UpdateProgress文字无法显示。

这是我的代码。 Repeater控件构建并加载jquery datatable

<div style="clear:both;padding-top:15px;">
<asp:UpdateProgress ID="UpdateProgress1" runat="Server" AssociatedUpdatePanelID="UpdatePanel1">
<ProgressTemplate >
   Please wait ...
</ProgressTemplate>
 </asp:UpdateProgress>     

 <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate>                                          
  <asp:Repeater runat="server" ID="rptGrid">
    <HeaderTemplate>
        <table cellpadding="0" cellspacing="0" border="0" class="display" id="Grid">
            <thead>
                <tr>
                    <th>Name</th>
                    <th>Location</th>
                </tr>
            </thead>
    </HeaderTemplate>
    <ItemTemplate>
        <tr class='nondraft'>
            <td><%# Eval("EmployeeName") %></td>
            <td><%# Eval("Location")%></td>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </tbody>
        </table>
    </FooterTemplate>
    </ContentTemplate>                                 
 </asp:UpdatePanel>
 </div>

知道我做错了什么吗? 感谢

3 个答案:

答案 0 :(得分:2)

这是因为您没有在代码中添加异步回发。您可以在

之后添加该代码
</ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="IdName" EventName="YourEventName" />
    </Triggers>
</asp:UpdatePanel> 

您需要编写控件ID,即您需要显示更新进度的控件,如按钮。

答案 1 :(得分:0)

如果我理解正确,您希望在首次加载页面时显示加载消息。

在这种情况下,UpdateProgress将没有任何帮助。 UpdateProgress仅在更新面板中出现异步回发时显示。

一种方法是使用ajax加载转发器数据。因此,第一次加载时,页面将几乎为空,并带有加载消息。然后进行ajax调用以获取数据

我依稀记得其他黑客,比如使用iframe,或者可能是从javascript强制执行__doPostBack或者从javascript进行重定向。

答案 2 :(得分:0)

您应该使用模态弹出扩展器来显示“Please Wait ....”消息,直到您的转发器正在加载。在您的情况下,由于没有发生实际的回发,因此无法触发更新进度。您可以访问http://www.codeproject.com/Articles/34996/ASP-NET-AJAX-Control-Toolkit-ModalPopupExtender-Co以获取客户端代码以打开和关闭弹出窗口。

但是如果您想要使用更新进度,请执行以下操作:

1)在更新面板中添加一个按钮并将其隐藏。

<asp:Button ID="YourButton" runat="server" Visible="false" />

2)添加以下javascript代码:

function Update_UpdatePaanel() 
{
    document.getElementById('<%= YourButton.ClientID %>').click();
}

希望这有帮助。