版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指导学习:"新知图书"购物车设计与开发主讲教师:肖宏启企业级Web应用开发(ASP.NET)——网站购物功能的设计与实现
项目导引:购物车模块在现实超市中我们是如何购物?来到超市购买商品,首先我们推上车子,开始选购商品,将商品放入车中,选购完商品后,到结算中心结算。在图书商城中如何购物?在“新知图书”中购买图书的流程和在超市购买商品流程类似。来到商城
选购图书
将图书放入购物车
结算下订单。“新知图书”中所说的购物车的作用也与超市中的车子类似,用来存放用户选购的商品,那么大家思考一下,用ASP.NET如何实现购物车呢?
项目分析:"新知图书"网购物购物车是用来储存用户购买的图书,用户可以将选中的图书添加到购物车中、修改购物车中的图书数量、移除购物车中的某件图书、清空购物车、查看购买图书的总价格等1.选购图书来到“新知图书”网,完成用户的注册登录,然后,开始选购图书,看到喜欢的图书,单击“购买”按钮,将图书放入购物车中,同时页面跳转到购物车管理页面,如图所示。2.购物车管理在购物车管理页面用户可以将图书从购物车中移除,修改购买数量,清空(删除)购物车,计算图书总价格,继续购物和结算功能,如图所示。
项目分析:"新知图书"网购物3.生成订单单击“结算”按钮,将订单信息插入到数据库中的订单表,生成订单,完成图书购买(本项目只做这些要求)。(拓展)在实际项目中,提交“结算”按钮,进入填写订单信息页面,如图所示。完成用户等信息填写后,单击“提交订单”按钮,将订单信息插入到数据库中的订单表,生成订单,完成图书购买(如当当网购物订单提交界面)。
项目分析:"新知图书"网购物4.订单管理(拓展)单击“我的订单”按钮,进入订单管理页面,如图所示。这里我们可以修改和取消订单信息。修改和取消订单就是在修改和删除订单表中的记录。
项目分析:"新知图书"网购物(拓展)
项目分析开发购物车的方法有两种:一种是将购物信息存储到数据表中二种是将购物信息存储到Session变量中购物车模块功能结构如图所示
查看购物车开始添加购物车购物车中是否有该图书添加图书购物车列表移除图书修改数量清空购物车收银台结账否数量加1是项目实施下面我们通过购物信息存储到数据表中的方法开发购物车,主要实现添加图书到购物车,查看购物车,删除购物车中的图书,修改购买图书的数量和生成订单的功能。设计“新知书店”购物车商品实体类“新知书店”购物车商品实体需要保存图书的信息及该书的购买数量。publicclassShoppingItem{privateBookbook;privateintquantity;publicBookBook//采用图书类型作为Book属性的类型{get{returnbook;}set{book=value;}}publicintQuantity//图书购买数量{get{returnquantity;}set{quantity=value;}}publicShoppingItem()//构造方法{}publicShoppingItem(Bookbook,intquantity){this.book=book;this.quantity=quantity;}}设计“新知书店”购物车类的业务逻辑从用户选取一件件商品,到结算的过程都是在使用购物车进行数据的存储,那么如何实现购物车呢?本书为侧重购物车的关键业务逻辑,对购物流程中填写收货信息及支付等不予分析。获取购物车图书列表主要代码如下主要代码如下:项目实施///<summary>///获得购物车书籍列表///</summary>publicList<ShoppingItem>ShoppingItems{get{if(this.shoppingItems==null)this.shoppingItems=newList<ShoppingItem>();returnthis.shoppingItems;}set{this.shoppingItems=value;}}publicShoppingManager(){}publicShoppingManager(objectshoppingItems){this.ShoppingItems=shoppingItemsasList<ShoppingItem>;}publicShoppingManager(objectshoppingItems,objectuser){this.ShoppingItems=shoppingItemsasList<ShoppingItem>;this.User=userasUser;}
///<summary>///添加书籍///</summary>///<paramname="bookId"></param>publicvoidAddItem(intbookId){boolhadBuy=false;foreach(ShoppingItemiteminthis.ShoppingItems){if(item.Book.Id==bookId){hadBuy=true;item.Quantity+=1;break;}}if(!hadBuy){Bookbook=newBookService().GetBookById(bookId);this.ShoppingItems.Add(newShoppingItem(book,1));}}设计“新知书店”购物车类的业务逻辑向购物车添加图书的主要代码如下:项目实施
///<summary>///删除书籍///</summary>///<paramname="bookId"></param>publicvoidRemoveItem(intbookId){for(inti=0;i<this.ShoppingItems.Count;i++){if(this.ShoppingItems[i].Book.Id==bookId){this.ShoppingItems.Remove(this.ShoppingItems[i]);}}}设计“新知书店”购物车类的业务逻辑删除购物车书籍的主要代码如下:项目实施
///<summary>///更新购买书籍数量///</summary>///<paramname="bookId"></param>///<paramname="quantity"></param>publicvoidUpdateQuantity(intbookId,intquantity){foreach(ShoppingItemiteminthis.ShoppingItems){if(item.Book.Id==bookId){item.Quantity=quantity;break;}}}
///<summary>///计算总价///</summary>publicdecimalTotalPrice{get{decimaltotalPrice=0;foreach(ShoppingItemiteminthis.ShoppingItems){totalPrice+=item.Quantity*item.Book.UnitPrice;}returntotalPrice;}}设计“新知书店”购物车类的业务逻辑更新购物车书籍(计算总价)的主要代码如下:项目实施
///<summary>///由购物车生成订单///</summary>publicvoidMakeOrder(){if(this.user!=null&&this.ShoppingItems.Count>0)newOrderService().MakeOrder(this.ShoppingItems,this.user,true);}设计“新知书店”购物车类的业务逻辑点击“结算”按钮生成订单的方法(MakeOrder()方法是数据访问层的方法,如果只设计购物车并不需要):项目实施实现“新知书店”购物车界面设计及显示
实现“新知书店”购物车界面设计及绑定数据并显示的功能,购物车显示及编辑功能如图10-2所示(注意:在本书配套资源中,购物车页面ShoppingCart.aspx的正常显示需要从解决方案BookShop下的BookDetail.aspx页面中单击“购买”按钮进行链接;从页面BookDetailsView.aspx中单击“购买”按钮的方式没有实现,读者可以思考,并实现):项目实施实现“新知书店”购物车界面设计及显示
实现“新知书店”购物车界面设计及绑定数据并显示的功能,购物车显示及编辑功能如图10-2所示(注意:在本书配套资源中,购物车页面ShoppingCart.aspx的正常显示需要从解决方案BookShop下的BookDetail.aspx页面中单击“购买”按钮进行链接;从页面BookDetailsView.aspx中单击“购买”按钮的方式没有实现,读者可以思考,并实现):项目实施实现“新知书店”购物车的增、删、改
实现向“新知书店”购物车中添加购买书籍、修改购买数量、删除购买书籍及计算总价的功能。难点提示:可以通过GridView实现向购物车添加记录,并显示;分别实现GridView中修改、删除和取消按钮的事件处理。项目实施///<summary>///GridView删除按钮处理事件///</summary>protectedvoidgvCart_RowDeleting(objectsender,GridViewDeleteEventArgse){ShoppingManagermanager=newShoppingManager(Session["Cart"]);LabellblBookId=this.gvCart.Rows[e.RowIndex].FindControl("lblBookId")asLabel;intbookId=int.Parse(lblBookId.Text);manager.RemoveItem(bookId);Session["Cart"]=manager.ShoppingItems;this.gvCart.DataSource=manager.ShoppingItems;this.gvCart.DataBind();this.ltrSalary.Text=string.Format("{0:F}",manager.TotalPrice);}实现“新知书店”购物车的增、删、改
项目实施///<summary>///GridView更新按钮处理事件///</summary>protectedvoidgvCart_RowUpdating(objectsender,GridViewUpdateEventArgse){ShoppingManagermanager=newShoppingManager(Session["Cart"]);foreach(GridViewRowdrinthis.gvCart.Rows){LabellblBookId=this.gvCart.Rows[e.RowIndex].FindControl("lblBookId")asLabel;TextBoxtxtQuantity=this.gvCart.Rows[e.RowIndex].FindControl("txtQuantity")asTextBox;intbookId=int.Parse(lblBookId.Text);intquantity=int.Parse(txtQuantity.Text);manager.UpdateQuantity(bookId,quantity);}Session["Cart"]=manager.ShoppingItems;this.gvCart.EditIndex=-1;this.gvCart.DataSource=manager.ShoppingItems;this.gvCart.DataBind();this.ltrSalary.Text=string.Format("{0:F}",manager.TotalPrice);}实现“新知书店”购物车的增、删、改
项目实施///<summary>///GridView更新按钮处理事件///</summary>protectedvoidgvCart_RowUpdating(objectsender,GridViewUpdateEventArgse){ShoppingManagermanager=newShoppingManager(Session["Cart"]);foreach(GridV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玉雕工发展趋势强化考核试卷含答案
- 腈纶回收操作工安全技能测试水平考核试卷含答案
- 印制电路制作工风险评估与管理模拟考核试卷含答案
- 电子设备装接工安全专项强化考核试卷含答案
- 通信接入设备装调工安全文明水平考核试卷含答案
- 烷基化装置操作工冲突解决能力考核试卷含答案
- 纸箱纸盒制作工技术操作水平考核试卷含答案
- 贵金属首饰检验员安全培训水平考核试卷含答案
- 清廉学校建设管理制度
- 诗集整本书阅读教学设计
- DL-T2078.3-2021调相机检修导则第3部分:辅机系统
- 录用通知范文书(offer模板)
- 价值流程图培训
- 装修设计服务流程
- 《化工企业现场管理》课件
- 电子基础知识-电感
- GB/T 1919-2023工业氢氧化钾
- 公共艺术-美术与人生
- JJF 1986-2022 差压式气密检漏仪校准规范
- 西方经济学(第二版)完整整套课件(马工程)
- 高三数学复习备考总结与反思
评论
0/150
提交评论