UpdateProgress无法处理初始页面加载

时间:2014-02-18 15:06:51

标签: asp.net updatepanel updateprogress

我需要做什么才能使我的updateParog中的UpdateProgress在初始页面加载时显示?在我在同一页面上的updatepanel等中对网格进行排序但在初始页面加载时没有排序后,它工作正常。我能做什么?这是我的代码示例。我的代码隐藏中没有任何代码,所以可能是我不确定的一些问题。

<asp:UpdateProgress ID="updProgress"
AssociatedUpdatePanelID="UpdatePanel1"
runat="server">
    <ProgressTemplate>
        <div id="postback-loader">
         <img src="Images/ajax-loader-blue.gif" style="margin:11px auto;display:block;" /><br />
         <asp:Label ID="Label1" runat="server" Text="Loading Computers..." Width="170px"></asp:Label>
        </div>                   
    </ProgressTemplate>
</asp:UpdateProgress>

1 个答案:

答案 0 :(得分:0)

您需要将控制权返回给页面,然后执行部分回发以使用jQuery更新UpdatePanel的内容以初始化回发。

这是一个我碰到的简单例子:

<强>标记

<script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            __doPostBack('<%=UpdatePanel1.ClientID %>');
        });
    </script>
    <form id="form1" runat="server">
    <div>
    </div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" OnLoad="UpdatePanel1_Load">
        <ContentTemplate>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1">
        <ProgressTemplate>
            <div id="postback-loader">
                <img src="Images/ajax-loader-blue.gif" style="margin: 11px auto; display: block;" /><br />
                <asp:Label ID="Label1" runat="server" Text="Loading Computers..." Width="170px"></asp:Label>
            </div>
        </ProgressTemplate>
    </asp:UpdateProgress>
</form>

代码背后

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
        TextBox1.Text = "First Load";
}

protected void UpdatePanel1_Load(object sender, EventArgs e)
{
    if (IsPostBack)
    {
        Thread.Sleep(10000);
        TextBox1.Text = "Finished";
    }
}