1private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)//Asumsikan bahwa perintah pembelian sebelumnya adalah LinkButton dengan nama perintah buy
2 {//Kunci, buat dan tambahkan ke keranjang belanja
3 string pid=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();//Dapatkan nomor hewan peliharaan
4 if(e.CommandName=="buy")//Jika nama perintahnya beli berarti membeli
5 {
6 if(Session["bus"]==null)//Pertama periksa apakah keranjang belanja ada. Jika tidak ada, buatlah.
7 {
8 System.Collections.Hashtable ht=new Hashtable();//Pertama buat tabel hash
9 ht.Add(pid,1);//Ada dua kolom di tabel hash, satu kunci dan satu nilai. Kami menempatkan nomor hewan peliharaan di depan dan jumlah pembelian di belakang
10 Session["bus"]=ht;//Tetapkan tabel hash ke objek Session
11 }
12 lain//jika ada
13 {
14 Hashtable ht=(Hashtable)Session["bus"];//Gunakan konversi tipe paksa, lalu tetapkan Session["bus"] ke objek tabel hash ht
15 if(ht[pid]==null)//Jika ID terkait tidak ada dalam tabel hash,
16 {
17 ht[pid]=1;//Kemudian setel langsung ke 1
18}
19 else//Jika sudah ada ID yang sesuai
20 {
21 ht[pid]=(int)ht[pid]+1;//Kemudian ambil yang asli dan tambahkan 1
dua puluh dua }
23 Session["bus"]=ht;//Akhirnya perbarui objek Session
dua puluh empat }
25}
26
27}
Cara membacanya lebih sederhana, sebagai berikut:
this.DataList1.DataSource=(Hashtable)Session["bus"];//Gunakan tabel hash secara langsung sebagai sumber data,
this.DataList1.DataBind();//Ikat kuantitas pembaruan
1private void LinkButton1_Click(pengirim objek, System.EventArgs e)
2 {
3
4 foreach(DataListItem dl di this.DataList1.Items)//Melintasi koleksi
5 {
6 TextBox tb=(TextBox)dl.FindControl("TextBox1");//Temukan kotak teks
7 int newpid=Convert.ToInt32(tb.Text.ToString());//Temukan nilai di kotak teks
8
9 Label label1=(Label)dl.FindControl("key");//Temukan kontrol yang memuat bidang kunci tabel hash
10 string pid=label1.Text.ToString();//Dapatkan nilainya
11
12 Hashtable ht=(Hashtable)Session["bus"];//Tetapkan objek session["bus"] ke tabel hash ht
13 int oldpid=(int)ht[pid];//Dapatkan jumlah aslinya
14
15 if(newpid!=oldpid)//Jika nilai di kotak teks tidak sama dengan angka aslinya, ganti dengan nilai baru di tabel hash
16 {
17 ht[pid]=pid baru;
18}
19 Session["bus"]=ht;//Akhirnya perbarui objek Session
20}
dua puluh satu }