zoukankan      html  css  js  c++  java
  • ASP.NET开发购物推车之购物车类

    Web应用程序开发中,大多数的电子商务网站都有网上购物这一功能模块,所以购物车程序的编写就显得非常重要。 购物车的作用不外就是实现这些功能:添加物件、修改物件、删除物件、检查推车、查看推车等。在本文就讲解“添加物件”、“删除物件”和“查看推车”这三个功能
    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组件来添加、删除物件。
  • 相关阅读:
    Count and Say leetcode
    Find Minimum in Rotated Sorted Array II leetcode
    Find Minimum in Rotated Sorted Array leetcode
    Search in Rotated Sorted Array II leetcode
    search in rotated sorted array leetcode
    Substring with Concatenation of All Words
    Subsets 子集系列问题 leetcode
    Sudoku Solver Backtracking
    Valid Sudoku leetcode
    《如何求解问题》-现代启发式方法
  • 原文地址:https://www.cnblogs.com/wantingqiang/p/1402563.html
Copyright © 2011-2022 走看看