2012-03-01 11 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を押すと、私はこれが最初のボタンのプッシュではなく、第二に、OK作品1でのxを増やすことをお勧めします...

_Default.xを更新するにはどうすればよいですか?

答えて

2

使用

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

のようなものも、あなたのLabelLoadOnly問題がASP.Netアプリケーションで、ページのそのインスタンスだけで十分な長奉仕する住んでいるということである

if(!IsPostback){ 
... 
+0

これはうまくいきます。ありがとうございます。私の考えは、ユーザーが%を入力し、ラベルがx *%で更新されるテキストボックスを使用することです。私がどこかにxを保存しないと、これは%値が変更されたときに失われます。隠しラベルなどを使ってxの値を保存することは可能でしょう。 – DerGnu

+0

xを隠し値に格納するか、Session ["MyValue"] = x;あなたが望むときにそれを読んでください – dice

0

により保護されなければなりません単一の要求。ポストバックが(あなたがボタンをクリックします)発生した場合、あなたはその周りに1

方法にxリセットして、新たなインスタンスを取得あなたは値を保持したいどのくらいに応じて、ViewStateおよび/またはSessionです。 はありませんは静的変数を使用します:デバッグ時に動作するように見えるかもしれませんが、すべてユーザーは同じ値を共有します。

関連する問題