熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

利用Session和HashTable制

2013-11-13 10:12:39  來源: .NET編程 
     private void DataGrid_ItemCommand(object source SystemWebUIWebControlsDataGridCommandEventArgs e)//假設前面購買命令是一個命令名為buy的LinkButton
   {//關鍵建立和加如購物車
   string pid=thisDataGridDataKeys[eItemItemIndex]ToString();//取出寵物編號
   if(eCommandName==buy)//如果命令名是 buy說明是購買
   {
   if(Session[bus]==null)//先就得檢查購物車是否存在如果不存在就建立呗
   {
   SystemCollectionsHashtable ht=new Hashtable();//先建立一個哈希表
   htAdd(pid);//哈希表中的兩個列一個key一個value 我們就前面放寵物編號後面放購買數量好了預設置為1
   Session[bus]=ht;//將哈希表賦值給Session對象
   }
   else//如果存在的話
   {
   Hashtable ht=(Hashtable)Session[bus];//使用強制類型轉換再將Session[bus]賦值給哈希表對象 ht
   if(ht[pid]==null)//如果哈希表中對應的ID沒有
   {
   ht[pid]=;//那就直接給他設為 1
   }
   else//如果已經有對應的ID
   {
   ht[pid]=(int)ht[pid]+;//那麼就把原來的取出來再加上 1
   }
   Session[bus]=ht;//最後再更新Session 對象
   }
   }
  
   }
  
  而讀取的方法更簡單了如下:
  
  
  thisDataListDataSource=(Hashtable)Session[bus];//直接利用哈希表作為數據源
   thisDataListDataBind();//綁定一下
  更新數量
   private void LinkButton_Click(object sender SystemEventArgs e)
   {
  
   foreach(DataListItem dl in thisDataListItems)//遍歷集合
   {
   TextBox tb=(TextBox)dlFindControl(TextBox);//找到文本框
   int newpid=ConvertToInt(tbTextToString());//查出文本框裡面的值
  
   Label label=(Label)dlFindControl(key);//找到裝載哈希表key字段的那個控件
   string pid=labelTextToString();//把他的值拿出來
  
   Hashtable ht=(Hashtable)Session[bus];//把session[bus]對象賦值給哈希表 ht
   int oldpid=(int)ht[pid];//求得原來的數量
  
   if(newpid!=oldpid)//如果文本框裡的值不等於原來的數量就用新的更換到哈希表中的值
   {
   ht[pid]=newpid;
   }
   Session[bus]=ht;//最後再更新Session 對象
   }
   }

From:http://tw.wingwit.com/Article/program/net/201311/12913.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.