0

サーバー側で関数がまだ実行されている間に、進行状況を更新してクライアント側に対応するメッセージを表示することになっています。

どうすればこれを達成できますか?

関数は次のようになります。

protected void Button1_Click(object sender, EventArgs e)
        {
            string Result = "Success";
            if (Result == "Success")
            {
                Label1.Text = "Plan mst Completed";
                Thread.Sleep(2000);     //Some functionality here
                Label1.Text = "Packing date mst Started";
            }
            if (Result == "Success")
            {
                Label1.Text = "Packing date mst Completed";
                Thread.Sleep(2000);     //Some functionality here
                Label1.Text = "Etd mst Started";
            }

            if (Result == "Success")
            {

                Label1.Text = "Etd mst Completed";
                Thread.Sleep(2000);     //Some functionality here
                Label1.Text = "Inner box mst Started";

            }
        }

そして、上記の関数がまだ実行されている間に、Label1 のテキストを更新する必要があります。

私は AJAX を使ってみましたが (私はまだ初心者ですが)、成功しませんでした。これが私がしたことです:

<form id="form1" runat="server">
    <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:Timer ID="Timer1" runat="server" Interval="10" ontick="Timer1_Tick1">
            </asp:Timer>
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

        </ContentTemplate>
    </asp:UpdatePanel>
    </form>

対応するイベント:

protected void Page_Load(object sender, EventArgs e)
        {
            UpdatePanel1.UpdateMode = UpdatePanelUpdateMode.Conditional;
        }
        protected void Timer1_Tick1(object sender, EventArgs e)
        {
            UpdatePanel1.Update();            
        }

jQuery などによる AJAX 以外の代替手段も歓迎します。

4

1 に答える 1

1

これらはあなたを助けるかもしれません:

http://forums.asp.net/t/1500201.aspx

ASP.NET 非同期ラベル更新

于 2012-10-04T12:16:55.620 に答える