0

私は .Net の初心者です。助けてください。
aspx ページにボタンと 1 つのラベルがあり、ラベルにテキストを表示し、数秒後にボタンのクリック時にメッセージ ボックスを表示したいと考えています。私のコードは -

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lblFirst" runat="server" Text=""></asp:Label> 
<asp:Button ID="btnClick" runat="server" Text="MyThread" 
       onclick="btnClick_Click" />
</ContentTemplate>
</asp:UpdatePanel>

およびコードファイル-

protected void btnClick_Click(object sender, EventArgs e)
    {
        lblFirst.Text = "Thread Start!";

        Thread threadObj = new Thread(new ThreadStart(myThreadMethod));
        threadObj.Start();
    }

    public void myThreadMethod()
    {
        //Server Code that take long time..
        Debug.Write("Thread Ending");
        Page.ClientScript.RegisterStartupScript(GetType(),"msgbox","alert('End');",true);

    }

ラベルのテキストが変更されましたが、メッセージ ボックスが表示されませんでした。
スレッドの後にメッセージ ボックスを表示することは可能ですか?
これどうやってするの?
関心をお寄せいただきありがとうございます。

4

3 に答える 3

1

backgroundworker を使用してから、イベント BackGroundWorker complete を追加し、そのイベントでメッセージボックスを追加します

        BackgroundWorker bgw = new BackgroundWorker();

    // setup the anonymous event, this fires when the thread starts
    bgw.DoWork += (sender, e) =>
    {
        // do work here
    };

    // event when the thread has finished
    bgw.RunWorkerCompleted += new RunWorkerCompletedEventHandler((sender, e) =>
    {
        // set yr messagebox here
    });
于 2012-07-03T10:50:39.823 に答える
0

@Nyein Nyein ちゃんちゃん:

   Response.Write("<script language='javascript'>alert('Your message is here.')</script>");
于 2012-07-03T11:22:01.670 に答える
0

System.Threading.Thread.Sleep(x);
x をミリ秒単位で置き換えることができます。 この後、Button1 がボタンの名前である場所
を使用できます。Button1.PerformClick();

于 2012-07-03T13:23:42.173 に答える