1

インターネットを何度も検索しましたが、これは非常に簡単なようですが、どういうわけかうまくいきません。

C# で Web フォーム アプリケーションを作成しようとしています。Button1 は Web サイトから大量のデータをダウンロードすることになっているため、Label1 に Button1 のコードの実行中に「ダウンロード中」と表示し、コードの終了後に「完了」と表示したいのですが、Label1 はボタン クリック後にまったく変化しません。

コードは以下のとおりです。

protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = "downloading";
            //code for downloading data
            Label1.Text = "done";
        }
4

4 に答える 4

2

それはうまくいきません。以上がサーバー側のコードです。更新された HTML は、Button1_Click ハンドラーの実行が完了するまでブラウザーに返されません。したがって、ブラウザには「完了」ラベル テキストのみが表示されます。「ダウンロード中」のテキストではありません。

目的の効果を実現する最も簡単な方法は、フォームを送信する前に、クライアント側の JavaScript (おそらく jquery を使用) を使用してラベル テキストを「ダウンロード中」に更新することです。クライアント側の JavaScript を asp.net ボタンの OnClientClick プロパティに配置できます。その後、サーバー側のコードはデータをダウンロードし、ラベル テキストを完了に変更できます。

于 2013-01-01T03:30:45.030 に答える
0

投稿がかなり古いため、これがまだ役立つかどうかはわかりませんが、自分の質問への回答を探しているときに質問に出くわしました.

ラベルのテキストを変更した後、Label1.Update() 関数を使用するだけです。

于 2014-04-15T10:48:41.873 に答える
0

テキストをダウンロードから完了に変更したい場合は、次のようにします。

Label lbl = (Label)this.FindControl("Label1");
                    if (lbl != null)
                    {
                        lbl.Text =  "done";
                    }
于 2018-07-31T08:41:15.853 に答える