項(xiàng)目十任務(wù)1完成新知圖書(shū)購(gòu)物車設(shè)計(jì)與開(kāi)發(fā)_第1頁(yè)
項(xiàng)目十任務(wù)1完成新知圖書(shū)購(gòu)物車設(shè)計(jì)與開(kāi)發(fā)_第2頁(yè)
項(xiàng)目十任務(wù)1完成新知圖書(shū)購(gòu)物車設(shè)計(jì)與開(kāi)發(fā)_第3頁(yè)
項(xiàng)目十任務(wù)1完成新知圖書(shū)購(gòu)物車設(shè)計(jì)與開(kāi)發(fā)_第4頁(yè)
項(xiàng)目十任務(wù)1完成新知圖書(shū)購(gòu)物車設(shè)計(jì)與開(kāi)發(fā)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

指導(dǎo)學(xué)習(xí):"新知圖書(shū)"購(gòu)物車設(shè)計(jì)與開(kāi)發(fā)主講教師:肖宏啟企業(yè)級(jí)Web應(yīng)用開(kāi)發(fā)(ASP.NET)——網(wǎng)站購(gòu)物功能的設(shè)計(jì)與實(shí)現(xiàn)

項(xiàng)目導(dǎo)引:購(gòu)物車模塊在現(xiàn)實(shí)超市中我們是如何購(gòu)物?來(lái)到超市購(gòu)買(mǎi)商品,首先我們推上車子,開(kāi)始選購(gòu)商品,將商品放入車中,選購(gòu)?fù)晟唐泛?,到結(jié)算中心結(jié)算。在圖書(shū)商城中如何購(gòu)物?在“新知圖書(shū)”中購(gòu)買(mǎi)圖書(shū)的流程和在超市購(gòu)買(mǎi)商品流程類似。來(lái)到商城

選購(gòu)圖書(shū)

將圖書(shū)放入購(gòu)物車

結(jié)算下訂單?!靶轮獔D書(shū)”中所說(shuō)的購(gòu)物車的作用也與超市中的車子類似,用來(lái)存放用戶選購(gòu)的商品,那么大家思考一下,用ASP.NET如何實(shí)現(xiàn)購(gòu)物車呢?

項(xiàng)目分析:"新知圖書(shū)"網(wǎng)購(gòu)物購(gòu)物車是用來(lái)儲(chǔ)存用戶購(gòu)買(mǎi)的圖書(shū),用戶可以將選中的圖書(shū)添加到購(gòu)物車中、修改購(gòu)物車中的圖書(shū)數(shù)量、移除購(gòu)物車中的某件圖書(shū)、清空購(gòu)物車、查看購(gòu)買(mǎi)圖書(shū)的總價(jià)格等1.選購(gòu)圖書(shū)來(lái)到“新知圖書(shū)”網(wǎng),完成用戶的注冊(cè)登錄,然后,開(kāi)始選購(gòu)圖書(shū),看到喜歡的圖書(shū),單擊“購(gòu)買(mǎi)”按鈕,將圖書(shū)放入購(gòu)物車中,同時(shí)頁(yè)面跳轉(zhuǎn)到購(gòu)物車管理頁(yè)面,如圖所示。2.購(gòu)物車管理在購(gòu)物車管理頁(yè)面用戶可以將圖書(shū)從購(gòu)物車中移除,修改購(gòu)買(mǎi)數(shù)量,清空(刪除)購(gòu)物車,計(jì)算圖書(shū)總價(jià)格,繼續(xù)購(gòu)物和結(jié)算功能,如圖所示。

項(xiàng)目分析:"新知圖書(shū)"網(wǎng)購(gòu)物3.生成訂單單擊“結(jié)算”按鈕,將訂單信息插入到數(shù)據(jù)庫(kù)中的訂單表,生成訂單,完成圖書(shū)購(gòu)買(mǎi)(本項(xiàng)目只做這些要求)。(拓展)在實(shí)際項(xiàng)目中,提交“結(jié)算”按鈕,進(jìn)入填寫(xiě)訂單信息頁(yè)面,如圖所示。完成用戶等信息填寫(xiě)后,單擊“提交訂單”按鈕,將訂單信息插入到數(shù)據(jù)庫(kù)中的訂單表,生成訂單,完成圖書(shū)購(gòu)買(mǎi)(如當(dāng)當(dāng)網(wǎng)購(gòu)物訂單提交界面)。

項(xiàng)目分析:"新知圖書(shū)"網(wǎng)購(gòu)物4.訂單管理(拓展)單擊“我的訂單”按鈕,進(jìn)入訂單管理頁(yè)面,如圖所示。這里我們可以修改和取消訂單信息。修改和取消訂單就是在修改和刪除訂單表中的記錄。

項(xiàng)目分析:"新知圖書(shū)"網(wǎng)購(gòu)物(拓展)

項(xiàng)目分析開(kāi)發(fā)購(gòu)物車的方法有兩種:一種是將購(gòu)物信息存儲(chǔ)到數(shù)據(jù)表中二種是將購(gòu)物信息存儲(chǔ)到Session變量中購(gòu)物車模塊功能結(jié)構(gòu)如圖所示

查看購(gòu)物車開(kāi)始添加購(gòu)物車購(gòu)物車中是否有該圖書(shū)添加圖書(shū)購(gòu)物車列表移除圖書(shū)修改數(shù)量清空購(gòu)物車收銀臺(tái)結(jié)賬否數(shù)量加1是項(xiàng)目實(shí)施下面我們通過(guò)購(gòu)物信息存儲(chǔ)到數(shù)據(jù)表中的方法開(kāi)發(fā)購(gòu)物車,主要實(shí)現(xiàn)添加圖書(shū)到購(gòu)物車,查看購(gòu)物車,刪除購(gòu)物車中的圖書(shū),修改購(gòu)買(mǎi)圖書(shū)的數(shù)量和生成訂單的功能。設(shè)計(jì)“新知書(shū)店”購(gòu)物車商品實(shí)體類“新知書(shū)店”購(gòu)物車商品實(shí)體需要保存圖書(shū)的信息及該書(shū)的購(gòu)買(mǎi)數(shù)量。publicclassShoppingItem{privateBookbook;privateintquantity;publicBookBook//采用圖書(shū)類型作為Book屬性的類型{get{returnbook;}set{book=value;}}publicintQuantity//圖書(shū)購(gòu)買(mǎi)數(shù)量{get{returnquantity;}set{quantity=value;}}publicShoppingItem()//構(gòu)造方法{}publicShoppingItem(Bookbook,intquantity){this.book=book;this.quantity=quantity;}}設(shè)計(jì)“新知書(shū)店”購(gòu)物車類的業(yè)務(wù)邏輯從用戶選取一件件商品,到結(jié)算的過(guò)程都是在使用購(gòu)物車進(jìn)行數(shù)據(jù)的存儲(chǔ),那么如何實(shí)現(xiàn)購(gòu)物車呢?本書(shū)為側(cè)重購(gòu)物車的關(guān)鍵業(yè)務(wù)邏輯,對(duì)購(gòu)物流程中填寫(xiě)收貨信息及支付等不予分析。獲取購(gòu)物車圖書(shū)列表主要代碼如下主要代碼如下:項(xiàng)目實(shí)施///<summary>///獲得購(gòu)物車書(shū)籍列表///</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>///添加書(shū)籍///</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));}}設(shè)計(jì)“新知書(shū)店”購(gòu)物車類的業(yè)務(wù)邏輯向購(gòu)物車添加圖書(shū)的主要代碼如下:項(xiàng)目實(shí)施

///<summary>///刪除書(shū)籍///</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]);}}}設(shè)計(jì)“新知書(shū)店”購(gòu)物車類的業(yè)務(wù)邏輯刪除購(gòu)物車書(shū)籍的主要代碼如下:項(xiàng)目實(shí)施

///<summary>///更新購(gòu)買(mǎi)書(shū)籍?dāng)?shù)量///</summary>///<paramname="bookId"></param>///<paramname="quantity"></param>publicvoidUpdateQuantity(intbookId,intquantity){foreach(ShoppingItemiteminthis.ShoppingItems){if(item.Book.Id==bookId){item.Quantity=quantity;break;}}}

///<summary>///計(jì)算總價(jià)///</summary>publicdecimalTotalPrice{get{decimaltotalPrice=0;foreach(ShoppingItemiteminthis.ShoppingItems){totalPrice+=item.Quantity*item.Book.UnitPrice;}returntotalPrice;}}設(shè)計(jì)“新知書(shū)店”購(gòu)物車類的業(yè)務(wù)邏輯更新購(gòu)物車書(shū)籍(計(jì)算總價(jià))的主要代碼如下:項(xiàng)目實(shí)施

///<summary>///由購(gòu)物車生成訂單///</summary>publicvoidMakeOrder(){if(this.user!=null&&this.ShoppingItems.Count>0)newOrderService().MakeOrder(this.ShoppingItems,this.user,true);}設(shè)計(jì)“新知書(shū)店”購(gòu)物車類的業(yè)務(wù)邏輯點(diǎn)擊“結(jié)算”按鈕生成訂單的方法(MakeOrder()方法是數(shù)據(jù)訪問(wèn)層的方法,如果只設(shè)計(jì)購(gòu)物車并不需要):項(xiàng)目實(shí)施實(shí)現(xiàn)“新知書(shū)店”購(gòu)物車界面設(shè)計(jì)及顯示

實(shí)現(xiàn)“新知書(shū)店”購(gòu)物車界面設(shè)計(jì)及綁定數(shù)據(jù)并顯示的功能,購(gòu)物車顯示及編輯功能如圖10-2所示(注意:在本書(shū)配套資源中,購(gòu)物車頁(yè)面ShoppingCart.aspx的正常顯示需要從解決方案BookShop下的BookDetail.aspx頁(yè)面中單擊“購(gòu)買(mǎi)”按鈕進(jìn)行鏈接;從頁(yè)面BookDetailsView.aspx中單擊“購(gòu)買(mǎi)”按鈕的方式?jīng)]有實(shí)現(xiàn),讀者可以思考,并實(shí)現(xiàn)):項(xiàng)目實(shí)施實(shí)現(xiàn)“新知書(shū)店”購(gòu)物車界面設(shè)計(jì)及顯示

實(shí)現(xiàn)“新知書(shū)店”購(gòu)物車界面設(shè)計(jì)及綁定數(shù)據(jù)并顯示的功能,購(gòu)物車顯示及編輯功能如圖10-2所示(注意:在本書(shū)配套資源中,購(gòu)物車頁(yè)面ShoppingCart.aspx的正常顯示需要從解決方案BookShop下的BookDetail.aspx頁(yè)面中單擊“購(gòu)買(mǎi)”按鈕進(jìn)行鏈接;從頁(yè)面BookDetailsView.aspx中單擊“購(gòu)買(mǎi)”按鈕的方式?jīng)]有實(shí)現(xiàn),讀者可以思考,并實(shí)現(xiàn)):項(xiàng)目實(shí)施實(shí)現(xiàn)“新知書(shū)店”購(gòu)物車的增、刪、改

實(shí)現(xiàn)向“新知書(shū)店”購(gòu)物車中添加購(gòu)買(mǎi)書(shū)籍、修改購(gòu)買(mǎi)數(shù)量、刪除購(gòu)買(mǎi)書(shū)籍及計(jì)算總價(jià)的功能。難點(diǎn)提示:可以通過(guò)GridView實(shí)現(xiàn)向購(gòu)物車添加記錄,并顯示;分別實(shí)現(xiàn)GridView中修改、刪除和取消按鈕的事件處理。項(xiàng)目實(shí)施///<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);}實(shí)現(xiàn)“新知書(shū)店”購(gòu)物車的增、刪、改

項(xiàng)目實(shí)施///<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);}實(shí)現(xiàn)“新知書(shū)店”購(gòu)物車的增、刪、改

項(xiàng)目實(shí)施///<summary>///GridView更新按鈕處理事件///</summary>protectedvoidgvCart_RowUpdating(objectsender,GridViewUpdateEventArgse){ShoppingManagermanager=newShoppingManager(Session["Cart"]);foreach(GridV

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論