1private void DataGrid1_ItemCommand (แหล่งวัตถุ, System.Web.UI.WebControls.DataGridCommandEventArgs e) // สมมติว่าคำสั่งการซื้อก่อนหน้าคือ LinkButton ที่มีชื่อคำสั่ง buy
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);//มีสองคอลัมน์ในตารางแฮช หนึ่งคีย์และหนึ่งค่า เราใส่หมายเลขสัตว์เลี้ยงไว้ด้านหน้าและจำนวนการซื้อที่ด้านหลัง การตั้งค่าเริ่มต้นคือ 1
10 เซสชัน["bus"]=ht;//กำหนดตารางแฮชให้กับวัตถุเซสชัน
11 }
12 อื่น//ถ้ามี
13 {
14 Hashtable ht=(Hashtable)Session["bus"];//ใช้การแปลงประเภทบังคับ จากนั้นกำหนด Session["bus"] ให้กับวัตถุตารางแฮช ht
15 if(ht[pid]==null)//หาก ID ที่เกี่ยวข้องไม่อยู่ในตารางแฮช
16 {
17 ht[pid]=1;//จากนั้นตั้งค่าเป็น 1 โดยตรง
18}
19 อื่น//หากมี ID ที่เกี่ยวข้องอยู่แล้ว
20 {
21 ht[pid]=(int)ht[pid]+1;//จากนั้นนำต้นฉบับออกและเพิ่ม 1
ยี่สิบสอง }
23 เซสชัน["bus"]=ht;//ในที่สุดก็อัปเดตวัตถุเซสชัน
ยี่สิบสี่ }
25}
26
27}
วิธีการอ่านนั้นง่ายกว่าดังนี้:
this.DataList1.DataSource=(Hashtable)Session["bus"];//ใช้ตารางแฮชเป็นแหล่งข้อมูลโดยตรง
this.DataList1.DataBind();//Bind www.downcodes.com
อัพเดตจำนวน
1private โมฆะ LinkButton1_Click (ผู้ส่งวัตถุ System.EventArgs e)
2 {
3
4 foreach(DataListItem dl ใน this.DataList1.Items)//สำรวจคอลเลกชัน
5 {
6 กล่องข้อความ 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]=newpid;
18}
19 เซสชัน["bus"]=ht;//ในที่สุดก็อัปเดตวัตถุเซสชัน
20}
21 }
ที่มา: เริ่มต้นใช้งาน .net... BLOG