2012-04-21 14 views
0

2つのボタンがあり、それぞれ「Button1」および「Button2」と呼ぶことにします。 "Button1"をクリックすると、ViewState ["Record"]に "1"を格納します。また、 "Button2"をクリックすると、はViewState ["Record"]などに "2"を格納します。ViewStateを使用してレコードを保存する方法

私がButton1⟶Button1⟶Button2⟶Button2をクリックすると、私の期待する結果はViewState ["Record"

protected void Button1_Click(object sender, EventArgs e) 
{ 
    ViewState.Add("Record", "1"); 
} 
protected void Button2_Click(object sender, EventArgs e) 
{ 
    ViewState.Add("Record", "2"); 
} 
//show the viewstate result 
protected void ShowResult(object sender, EventArgs e) 
{ 
for (int i = 1; i <= 4; i++) 
    { 
     Label.Text += ViewState["Record"]; 
    } 
} 

それは代わりに "1122" の "2222" を示しています。

[1,1,2,2]. 

はここに私のクリックイベントのコードであるように]、レコードのリストがあります。 これを解決するにはどうすればよいですか?

答えて

2

実際に追加しない値をレコードキーに追加すると、値のレコードキーが追加されます。ループには常に最後に付加価値があります。

リストをViewStateに追加し、リストに値を追加する必要があります。

protected List<long> ViewStateList 
{ 
    get{ if(ViewState["Record"] == null) ViewState["Record"] = new List<long>(); 
     return (List<long>)ViewState["Record"] } 
} 

このプロパティを追加し、それが動作ループ

protected void Button1_Click(object sender, EventArgs e) 
{ 
    ViewStateList.Add(1); 
} 

よう

protected void ShowResult(object sender, EventArgs e) 
{ 
foreach(long item in ViewStateList) 
    { 
     Label.Text += item.ToString(); 
    } 
} 
+0

を使用し、おかげで^^ –

+0

どういたしましてをhkutluay .. – hkutluay

関連する問題