2012-03-01 62 views
0

我正在編寫我的第一個C#web應用程序,並對如何更新我的類中聲明的初始值存在問題。按鈕按鈕上的Web應用程序傳輸數據

一個簡單的例子來說明這個問題:

namespace WebApplication1 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     public int x = 1; 

     public void Page_Load(object sender, EventArgs e) 
     { 
      LabelLoadOnly.Text = x.ToString(); 
     } 

     protected void Button1_Click(object sender, EventArgs e) 
     { 
      LabelButton1.Text = x.ToString(); 
     } 

     protected void Button2_Click(object sender, EventArgs e) 
     { 
      int y = x + 1; 
      LabelButton2.Text = y.ToString(); 
      x = y; 
     } 
    } 
} 

最初,X = 1。當推動按鈕2我想通過1.增加x此工程確定的第一個按鈕推而不是第二...

如何更新我的_Default.x?

回答

2

使用類似

LabelButton2.Text = int.Parse(labelButton2.Text)+1; 

還您LabelLoadOnly應該

if(!IsPostback){ 
... 
+0

好的,這將起作用。謝謝。我的想法是使用一個文本框,用戶輸入%,然後標籤將被x *%更新。如果我不在某個地方存儲x,當%值被改變時這將會丟失......我想可以使用隱藏標籤或類似的方法來存儲x的值。 – DerGnu 2012-03-01 10:44:03

+0

您可以將x存儲在隱藏值或Session [「MyValue」] = x;並在需要時將其讀回 – dice 2012-03-01 10:47:06

0

的問題是,在ASP.Net應用程序,網頁的該實例就住在足夠長的時間來服務得到保護一個請求。當回傳發生(單擊該按鈕),你會得到一個新的實例,與x重置爲1

方式圍繞它是ViewState和/或Session,這取決於你想保留多久的價值。做不是使用靜態變量:它們可能在調試時工作,但全部用戶將共享相同的值 - 通常不是你想要的!