web應用程序開發中,大多數的電子商務網站都有網上購物這一功能模塊,所以購物車程序的編寫就顯得非常重要。
購物車的作用不外就是實現這些功能:添加物件、修改物件、刪除物件、檢查推車、查看推車等。在本文就講解“添加物件”、“刪除物件”和“查看推車”這三個功能。當然,這里只不過是一個簡單的購物車類,完成的功能也不多,還不夠完善,需要大家在這個基礎做擴展使它的功能更加完善。
c#是一種完全的oop(object oriented programming)語言,也是微軟的主打語言,也可以說是未來的幾個流行語言之一。本文的示例代碼使用c#編寫。以下是創建一個購物車類,它完成添加物件、刪除物件和查看購物車物件這些功能,文件名shoppingcart.cs:
using system;
using system.web.ui;
using system.collections; //使用hashtable類必須引入該命名空間
namespace wendwcart //命名空間名稱
{
[serializable]
public class stat_class{ //定義商品類,保存商品的各種屬性
string shangpinid; //商品id
string sp_name; //商品名稱
decimal sp_price; //商品價格
int sp_quan; //商品數量
public string itemid{
get{return shangpinid;}
set{shangpinid=value;}
}
public string shangpinname{
get{return sp_name;}
set{sp_name=value;}
}
public decimal price{
get{return sp_price;}
set{sp_price=value;}
}
public int quantity{
get{return sp_quan;}
set{sp_quan=value;}
}
public stat_class(string itemid,string shangpinname,decimal price,int quantity){ //構造方法,初始化商品的各個屬性
shangpinid=itemid;
sp_name=shangpinname;
sp_price=price;
sp_quan=quantity;
}
}
[serializable]
public class shoppingcart{
hashtable cart_orders=new hashtable();
public icollection orders{
get{return cart_orders.values;}
}
public decimal totalcost{ //計算總價格
get{
decimal total=0;
foreach(dictionaryentry entry in cart_orders){
stat_class order=(stat_class)entry.value;
total+=(order.price*order.quantity);
}
return total;
}
}
public void additem(stat_class order){ //添加物件方法
stat_class order=( stat_class)cart_orders[order.itemid];
if(order!=null)
order.quantity+=order.quantity;
else
cart_orders.add(order.itemid,order);
}
public void deleteitem (string itemid){ //刪除物件
if(cart_orders[itemid]!=null)
cart_orders.remove(itemid);
}
}
}
編譯shoppingcart.cs文件:
csc /t:library /out: shoppingcart.dll shoppingcart.cs
部署shoppingcart.dll組件到bin目錄下。
說明:
為了保證不管使用什么樣的會話模式都能夠有效的保存會話狀態,在定義類的前面加上了serializable序列化。另外,為了使每個用戶登錄時都能創建一個類的實例,在global.asax文件里加上:
<%@ import namespace="wendwcart" %>
<%@ application codebehind="global.asax.cs" inherits="hdlab.bbs.global" %>
<script language="c#" runat="server">
void session_start()
{
session["myshoppingcart"]=new shoppingcart();
}
</script>
其中wendwcart是控件的命名空間名稱。
在下一篇《購物推車程序開發——調用購物車類》中將講解如何在asp.net頁面中應用shoppingcart.dll組件來添加、刪除物件。
新聞熱點
疑難解答
圖片精選