0

我是 ASP.NET 的新手,这是我在这个论坛上的第一个问题。这是我的代码:

protected void Button1_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < 10; i++) 
            {
                Label2.Text = i.ToString();
                UpdatePanel1.Update();
                Thread.Sleep(3000);
            }
        }


<asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click"/>
            <asp:Label ID="Label2" runat="server" Text=""></asp:Label>
        </ContentTemplate>
</asp:UpdatePanel>

我想在每次更新时显示 i 的值,但我得到的值为 9。请帮助我如何实现我的目标......到目前为止没有运气

4

1 回答 1

3

您不能直接从服务器代码更新浏览器中的页面。当服务器代码结束时,对页面的任何更新都会发送回页面。

Update方法只告诉更新面板它应该包含在页面完成时发送回浏览器的数据中,它不会直接将更新发送给浏览器。

要使用服务器代码定期更新浏览器中的内容,您必须从浏览器对其进行控制,并且服务器代码应该只执行一次更新然后退出,以便将更新发送回浏览器。您可以使用一个计时器控件,该控件将在每次滴答时向服务器发出请求,或者您可以使用 Javascript 代码从服务器页面请求数据。

于 2013-10-25T19:54:29.690 回答