2013-01-01 52 views
0

我一遍又一遍地搜索了互聯網,這似乎非常簡單,但不知何故,它不工作。在c#web窗體中以編程方式更改標籤文本

我正嘗試在C#中創建一個Web窗體應用程序。 Button1應該從網站下載大量數據,並且我希望Label1在Button1中的代碼運行時顯示「下載」,並在代碼完成後「完成」,但Label1在按鈕單擊之後根本不會改變。

代碼如下:

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

你確定「Label1」是正確的嗎?另外,數據是否正確下載或整個功能不起作用? – jeremy

回答

2

這是行不通的。這就是所有的服務器端代碼。直到Button1_Click處理程序執行完畢後,更新後的HTML纔會發送回瀏覽器。所以瀏覽器只會看到「完成」標籤文本。永遠不要「下載」文本。

實現所需效果的最簡單方法是在提交表單之前使用客戶端JavaScript(也許使用jquery)將標籤文本更新爲「下載」。你可以把你的客戶端javascript放在asp.net按鈕的OnClientClick屬性中。然後服務器端代碼可以下載數據並將標籤文本更改爲完成。

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

我不知道這是否仍然有幫助,因爲這篇文章比較陳舊,但是我在尋找自己問題的答案時偶然發現了這個問題。

更改標籤的文本後,只需使用Label1.Update()函數。

相關問題