asp.net实现一个简易购物车功能。

要求:

  1. 使用Session记录放入购物车的商品;
  2. 分别有两个页面:一是购物页面;二是购物车页面;
  3. 购物页面包含商品列表(CheckBoxList)和两个按钮;
  4. 购物车页面包含想购买的商品列表和两个按钮;
  5. 在购物车页面,当按下“放入购物车”按钮,用Session记录商品名称,商品名称之间使用“逗号”隔开;
  6. 在购物车页面,根据Session取出商品,利用逗号分割出所有商品,放入购买列表中;
    结果:在这里插入图片描述
    在这里插入图片描述
    关键代码:
    Default.aspx:
 <form id="form1" runat="server">
    <div>
        <asp:CheckBoxList ID="CheckBoxList1" runat="server">
            <asp:ListItem>三文鱼</asp:ListItem>
            <asp:ListItem>濑尿虾</asp:ListItem>
            <asp:ListItem>小龙虾</asp:ListItem>
            <asp:ListItem>小裙子</asp:ListItem>
            <asp:ListItem>T恤</asp:ListItem>
            <asp:ListItem>小零食</asp:ListItem>
        </asp:CheckBoxList>
        <asp:Button ID="submit" runat="server" Text="放入购物车" onClick="submit_Clicked"/>
        <asp:Button ID="visit" runat="server" Text="查看购物车" OnClick="visit_Clicked"/>
        <br />
    </div>
    </form>

Default.aspx.cs

protected void visit_Clicked(object sender, EventArgs e){
		Response.Redirect("Default2.aspx");
	}
	protected void submit_Clicked(object sender, EventArgs e){
		for (int i = 0; i < CheckBoxList1.Items.Count; i++){
			if(CheckBoxList1.Items[i].Selected == true){//将选中的项添加到session
					Session["goods"]+=CheckBoxList1.Items[i].Value+",";
			}
		}
	}

Default2.aspx

<form id="form1" runat="server">
<div>
    <asp:CheckBoxList ID="CheckBoxList1" runat="server">
    </asp:CheckBoxList>
    <asp:Button ID="empty" runat="server" Text="清空购物车" onClick="empty_Clicked"/>
    <asp:Button ID="return" runat="server" Text="继续购物" OnClick="return_Clicked"/>
</div>
</form>

Default2.aspx.cs

protected void Page_Load(object sender, EventArgs e)
    {
		Session.Timeout=1;//session过期时间1分钟
		string[] sArray=Session["goods"].ToString().Split(',');//用逗号分隔开的字符串变成数组
		//去掉重复值
		ArrayList al = new ArrayList();  
		for (int i=0;i<sArray.Length;i++){
			if (al.Contains(sArray[i]) ==false){//判断要拆分的字符串中是否已经存在于这个ArrayList中   
				al.Add(sArray[i]);//不存在则添加进ArrayList   
            }
        } 
		//将ArrayList转换为string[]
		string[] al2=new string[al.Count];
		for(int i=0;i<al.Count;i++){
			al2[i]=al[i].ToString();
		}
		//将数组中的元素添加到CheckBoxList
		for(int i=0;i<al2.Length;i++){
			if(al2[i]!=""){
				CheckBoxList1.Items.Add(al2[i]);
			}
		}		
    }
	protected void return_Clicked(object sender, EventArgs e){
		Response.Redirect("Default.aspx");
	}
	protected void empty_Clicked(object sender, EventArgs e){
		Session["goods"]="";//清空session
		//将CheckBoxList中的项去掉
		int iCount = CheckBoxList1.Items.Count;
		for(int i=0;i<iCount;i++){
			CheckBoxList1.Items.Remove(CheckBoxList1.Items[0]);
		}
	}
  • 28
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
vs2008+mssql2005 │ CheckCode.aspx │ CheckCode.aspx.cs │ Default.aspx │ Default.aspx.cs │ Describe.aspx │ Describe.aspx.cs │ GoodsInfo.aspx │ GoodsInfo.aspx.cs │ Login.aspx │ Login.aspx.cs │ ShoppingCart.aspx │ ShoppingCart.aspx.cs │ SuccessShop.aspx │ SuccessShop.aspx.cs │ Web.config │ 必读:程序使用说明.doc │ ├─App_Code │ DB.cs │ ├─App_Data │ db_NetShop.mdf │ db_NetShop_log.ldf │ ├─Image │ │ 02-_small9[20061102090405].jpg │ │ 1.JPG │ │ 2.bmp │ │ 3.bmp │ │ 3.gif │ │ anniu1.gif │ │ anniu2.gif │ │ asp.net.jpg │ │ fjtp.jpg │ │ login.css │ │ Login.GIF │ │ login_logo.jpg │ │ login_shadow.jpg │ │ RESET.GIF │ │ sy_01.jpg │ │ sy_02.jpg │ │ sy_03.jpg │ │ sy_04.jpg │ │ sy_05.jpg │ │ sy_06.jpg │ │ sy_07.jpg │ │ sy_08.jpg │ │ sy_09.jpg │ │ 图片2.jpg │ │ 水杯.bmp │ │ 牙刷.jpg │ │ 首页(2).jpg │ │ │ └─购物车 │ │ {C3706893-B1BA-4C59-9DF1-C683DBB6A8E7}.jpg │ │ 关闭按钮.jpg │ │ 商品基本信息.jpg │ │ 子页中间.jpg │ │ 子页头.jpg │ │ 子页底.jpg │ │ 详细信息.jpg │ │ 购物车.jpg │ │ 进入后台按钮.jpg │ │ │ └─主页 │ 中间.jpg │ 头.jpg │ 底部.jpg │ 最新商品信息.jpg │ └─Image1 │ 02-_small9[20061102090405].jpg │ 3.gif │ fjtp.jpg │ fu.jpg │ 图片2.jpg │ 水杯.bmp │ └─购物车 │ 关闭按钮.jpg │ 商品基本信息.jpg │ 子页中间.jpg │ 子页头.jpg │ 子页底.jpg │ 详细信息.jpg │ 购物车.jpg │ 进入后台按钮.jpg │ └─主页 中间.jpg 头.jpg 底部.jpg 最新商品信息.jpg
使用: 第1 '================================================= '建立购物车对象,该对象用于直接在程序中调用 '================================================= dim uCart set uCart= new UserCart 第二 建立一个购物车 uCart.CreateCart (可以重复建立,因为里面有IsArray判断。所以建议这句在建立购物车对象后必写) 第三 增加购物车里的商品,在客户端点了某产品后,服务器端处理的ASP文件中接受传过来的产品标志,并访问数据库。分别把AddItem(aID产品标 志如ID,aName产品名称,aPrice1产品价格一,如单价,aPrice2产品价格二如会员价,aPrice3产品价格三如金牌会员价,如果没这么多可以置空 或置0,aCount购买数量,一般是一个,多个的话后面可以用修改函数修改,aImage产品图片地址) 使用方法:aa=uCart.AddItem(aID产品标志如ID,aName产品名称,aPrice1产品价格一,如单价,aPrice2产品价格二如会员价,aPrice3产品价格 三如金牌会员价,如果没这么多可以置空或置0,aCount购买数量,一般是一个,多个的话后面可以用修改函数修改,aImage产品图片地址),返回 true表示成功,false表示失败 第四 增加了以后进如显示页面,就要用到查看购物车 mycart=uCart.ViewCart() For i =LBound(myCart,2) to UBound(myCart,2) if myCart(0,i)"" then myCart(0,i) '获取标号 myCart(1,i) '获取单价 。。。以此类推 end if next 第五 查看了,可以修改购物车,如更改数量等,或是删除其中的 call uCart.ModifItem(mID唯一标志号,mCount产品数量,mFlag-标志 0-添加 1-删除,2-修改 3-清空) '先用给后面参数赋值 修改其中的商品 可以用第四个显示,先接受session的值,然后循环修改 或清空购物车 uCart.RemoveAll() 然后结帐,很简单 myprice=uCart.TPrice() 然后myprice(0)是产品单价的总价格,myprice(1)是产品会员价的总价格,myprice(2)是高级会员的总价格,myprice(3)是产品总数量 将商品装入购物车,这时需要用cookie或session来做一个不同页面间传递的全局变量,也就是说关了浏览器(针对session)或清楚了cookie等原因,本次购物车会消失,就象你今天在商场买了一车的东西,最后没结帐,明天肯定没了,又归位了,当然要有特殊需要保存,可以写数据库!所以这里记录的只需要是该商品的相关信息就可以了,这里我们记录他的 物品ID, 物品单价, 物品名称, 物品数量
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值