1private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)//前の購入コマンドがコマンド名 buy の LinkButton であると仮定します
2 {//キーを作成してショッピング カートに追加します
3 string pid=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();// ペット番号を取得する
4 if(e.CommandName=="buy")//コマンド名がbuyの場合、購入を意味します
5 {
6 if(Session["bus"]==null)//まずショッピングカートが存在するかどうかを確認し、存在しない場合は作成します。
7 {
8 System.Collections.Hashtable ht=new Hashtable();//まずハッシュ テーブルを作成します
9 ht.Add(pid,1);//ハッシュ テーブルには 2 つの列があり、1 つのキーと 1 つの値が前にあり、購入数量が後ろにあります。デフォルト設定は 1 です。
10 Session["bus"]=ht;//セッションオブジェクトにハッシュテーブルを割り当てる
11 }
12 else//存在する場合
13 {
14 Hashtable ht=(Hashtable)Session["bus"];//強制型変換を使用し、Session["bus"] をハッシュ テーブル オブジェクト ht に割り当てます
15 if(ht[pid]==null)//対応するIDがハッシュテーブルにない場合、
16 {
17 ht[pid]=1;//その後、直接 1 に設定します
18}
19 else//すでに対応するIDがある場合
20 {
21 ht[pid]=(int)ht[pid]+1;//次に元の値を取り出して 1 を加算します
22 }
23 Session["bus"]=ht;//最後にセッションオブジェクトを更新します
24 }
25}
26
27}
読み取り方法は次のように簡単です。
this.DataList1.DataSource=(Hashtable)Session["bus"];// ハッシュ テーブルをデータ ソースとして直接使用します。
this.DataList1.DataBind();//更新量をバインドする
1private void LinkButton1_Click(オブジェクト送信者、System.EventArgs e)
2 {
3
4 foreach(DataListItem dl in this.DataList1.Items)//コレクションを走査します
5 {
6 TextBox tb=(TextBox)dl.FindControl("TextBox1");//テキストボックスを検索します
7 int newpid=Convert.ToInt32(tb.Text.ToString());//テキスト ボックス内の値を検索します
8
9 Label label1=(Label)dl.FindControl("key");//ハッシュテーブルのキーフィールドをロードするコントロールを検索します
10 string pid=label1.Text.ToString();//値を取得します
11
12 Hashtable ht=(Hashtable)Session["bus"];//session["bus"] オブジェクトをハッシュ テーブル ht に割り当てます
13 int oldpid=(int)ht[pid];//元の数量を取得する
14
15 if(newpid!=oldpid)//テキストボックスの値が元の数値と等しくない場合は、ハッシュテーブルの新しい値に置き換えます
16 {
17 ht[pid]=新しいpid;
18}
19 Session["bus"]=ht;//最後にセッションオブジェクトを更新します
20}
21 }