Web应用程序开发中大多数的电子商务网站都有网上购物这一功能模块所以购物车程序的编写就显得非常重要
购物车的作用不外就是实现这些功能添加物件修改物件删除物件检查推车查看推车等在本文就讲解添加物件删除物件和查看推车这三个功能当然这里只不过是一个简单的购物车类完成的功能也不多还不够完善需要大家在这个基础做扩展使它的功能更加完善
C#是一种完全的OOP(Object Oriented Programming)语言也是微软的主打语言也可以说是未来的几个流行语言之一本文的示例代码使用C#编写以下是创建一个购物车类它完成添加物件删除物件和查看购物车物件这些功能文件名ShoppingCartcs
using Systemusing SystemWebUIusing SystemCollections //使用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 ItemIDString ShangpinNamedecimal Priceint Quantity){ //构造方法初始化商品的各个属性
ShangPinID=ItemIDSp_Name=ShangpinNameSp_Price=PriceSp_Quan=Quantity}
[Serializable] public class ShoppingCart{ Hashtable Cart_Orders=new Hashtable()public ICollection Orders{ get{return Cart_OrdersValues} }
public decimal TotalCost{ //计算总价格get{ decimal total=foreach(DictionaryEntry entry in Cart_Orders){ Stat_Class order=(Stat_Class)entryValuetotal+=(orderPrice*orderQuantity)} return total}
public void AddItem(Stat_Class Order){ //添加物件方法Stat_Class order=( Stat_Class)Cart_Orders[OrderItemID]if(order!=null)
orderQuantity+=OrderQuantityelse Cart_OrdersAdd(OrderItemIDOrder)}
public void DeleteItem (String ItemID){ //删除物件if(Cart_Orders[ItemID]!=null)
Cart_OrdersRemove(ItemID)}编译ShoppingCartcs文件
csc /tlibrary /out ShoppingCartdll ShoppingCartcs
部署ShoppingCartdll组件到bin目录下
说明
为了保证不管使用什么样的会话模式都能够有效的保存会话状态在定义类的前面加上了Serializable序列化另外为了使每个用户登录时都能创建一个类的实例在Globalasax文件里加上
<%@ Import Namespace=WendwCart %><%@ Application Codebehind=Globalasaxcs Inherits=HDLabBBSGlobal %><script Language=C# runat=server>
void Session_Start()
{ Session[MyShoppingCart]=new ShoppingCart()}</script>
其中WendwCart是控件的命名空间名称 在下一篇《购物推车程序开发——调用购物车类》中将讲解如何在ASPNET页面中应用ShoppingCartdll组件来添加删除物件