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メソッドは、更新パネルに、ページが完成したときにブラウザに送り返されるデータに含める必要があることを伝えるだけで、更新をブラウザに直接送信しません。

サーバーコードを使用してブラウザーのコンテンツを定期的に更新するには、ブラウザーからコンテンツを制御する必要があります。サーバーコードは、1 回の更新を実行してから終了し、更新がブラウザーに送り返されるようにする必要があります。ティックごとにサーバーにリクエストを送信するタイマー コントロールを使用するか、Javascript コードを使用してサーバー ページからデータをリクエストすることができます。

于 2013-10-25T19:54:29.690 に答える