项目十任务1完成新知图书购物车设计与开发_第1页
项目十任务1完成新知图书购物车设计与开发_第2页
项目十任务1完成新知图书购物车设计与开发_第3页
项目十任务1完成新知图书购物车设计与开发_第4页
项目十任务1完成新知图书购物车设计与开发_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

指导学习:"新知图书"购物车设计与开发主讲教师:肖宏启企业级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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论