電子商城――畢業(yè)設(shè)計_第1頁
電子商城――畢業(yè)設(shè)計_第2頁
電子商城――畢業(yè)設(shè)計_第3頁
電子商城――畢業(yè)設(shè)計_第4頁
電子商城――畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于B/S模式網(wǎng)絡(luò)商城系統(tǒng)設(shè)計摘 要本文采用C#和ASP為開發(fā)工具,結(jié)合SQLServer2008數(shù)據(jù)庫,開發(fā)基于B/S模式的網(wǎng)絡(luò)商城交易平臺。本系統(tǒng)主要有用戶和管理員兩大模塊,系統(tǒng)中的商品由系統(tǒng)管理員進行維護,商品都有標價,注冊用戶不用競價,如同在實體商城中購物一樣。系統(tǒng)功能包括:用戶注冊、用戶登錄、商品信息的瀏覽、商品添加到購物車、商品的結(jié)算等。系統(tǒng)的開發(fā)上主要包括后臺數(shù)據(jù)庫的簡歷和維護以及前臺引用程序的開發(fā)兩個方面,對于前者要求建立數(shù)據(jù)一致性和完整性強,數(shù)據(jù)安全性好的數(shù)據(jù)庫,而對于猴子則要求應用程序功能完備,易于使用等特點。最后,對每個功能模塊和整個系統(tǒng)進行了測試,測試結(jié)果表明系統(tǒng)基本具

2、備了網(wǎng)上交易的功能以及快速的響應速度。關(guān)鍵詞:系統(tǒng)開發(fā),數(shù)據(jù)庫,B/S模式,網(wǎng)絡(luò)交易 ABSTRACTThis article uses C # and ASP for the development of tools, combined with SQLServer2008 database development based on B / S mode network mall trading platform. The system has two modules users and administrators, the system is maintained by the syst

3、em administrator of goods, commodities are priced, registered users do not bid, as the same as in the physical shopping mall. System features include: user registration, user login, product information, browse, add items to the shopping cart, billing and other commodities. System, including backgrou

4、nd on the development of a resume database, and maintenance and the development prospects of reference the two sides, the former calls for the establishment of data consistency and integrity, data security, good database, but the monkey is required for complete application functionality and easy to

5、use and so on.Finally, each functional module and the entire reactor system was tested, the test results show that the online trading system disease has the features and fast response speed.KEY WORDS: ASP,Database ,B / S mode, network transactions, development目錄前言1第1章 程序瀏覽與功能劃分21.1 功能模塊劃分21.1.1 用戶模塊

6、21.1.2 管理員模塊21.2 程序運行瀏覽51.2.1 用戶模塊運行瀏覽51.2.2 管理員模塊功能瀏覽6第2章 數(shù)據(jù)庫設(shè)計92.1 數(shù)據(jù)庫設(shè)計構(gòu)建92.1.1 設(shè)計數(shù)據(jù)庫92.1.2 數(shù)據(jù)表間關(guān)系描述9第3章 通過WebService構(gòu)建功能函數(shù)113.1 webservice概述113.2 第一個webservice的函數(shù)11第4章 用戶模塊下的網(wǎng)站整體風格構(gòu)建134.1 構(gòu)建用戶登錄和歡迎頁面134.1.1 添加主功能面板134.1.2 添加登錄控件134.1.3 添加歡迎控件144.2 書籍分類導航面板的構(gòu)建15第5章 用戶模塊的構(gòu)建165.1 構(gòu)建用戶模塊組成界面165.1.1

7、首頁的構(gòu)建165.1.2 公告詳細信息瀏覽頁面的構(gòu)建185.1.3 書籍列表、特價書籍列表構(gòu)建185.1.4 書籍詳細信息查看頁面的構(gòu)建195.1.5注冊頁面的構(gòu)建205.1.6用戶詳細信息查看界面、修改頁面的構(gòu)建205.1.7 購物車的實現(xiàn)215.1.8 服務臺頁面的實現(xiàn)245.1.9用戶訂單列表頁面的構(gòu)建245.1.10 用戶訂單詳細信息頁面的構(gòu)建255.2 完善工作26第六章 管理員模塊下網(wǎng)站整體風格構(gòu)建276.1添加主功能面板276.2 添加歡迎控件276.3添加書籍分類導航面板27第七章 管理員模塊的構(gòu)建287.1管理員管理界面構(gòu)建287.1.1管理員登錄頁面的構(gòu)建287.1.2 書

8、籍列表、特價書籍列表頁面的構(gòu)建297.1.3 書籍詳細信息查看頁面的構(gòu)建297.1.4 書籍信息修改頁面的構(gòu)建307.1.5 設(shè)置特價書籍價格頁面的構(gòu)建307.1.6 添加新書籍頁面的構(gòu)建307.1.7 管理員列表頁面的構(gòu)建317.1.8 管理員詳細信息查看、修改頁面的構(gòu)建317.1.9 添加管理員頁面的構(gòu)建337.1.10 用戶列表頁面的構(gòu)建337.1.11 用戶詳細信息查看頁面的構(gòu)建337.2 訂單管理337.2.1訂單列表頁面的構(gòu)建337.2.2 訂單詳細信息查看頁面的構(gòu)建347.3 公告欄設(shè)置357.3.1 公告列表頁面的構(gòu)建357.3.2 公告詳細信息查看、修改頁面的構(gòu)建357.3.

9、3 公告添加頁面的構(gòu)建357.4 完善工作35結(jié)論37謝 辭38參考文獻39附錄40前言隨著貿(mào)易的全球化和internet 網(wǎng)絡(luò)的全球化特征使兩者很自然地走到了一起,形成了如今風靡全球的電子商務(EC)。電子商務是指應用電子信息技術(shù)和現(xiàn)代internet網(wǎng)絡(luò)技術(shù)在客戶、廠商及其他交易主體之間進行的以信息為依托的商務活動,而購物網(wǎng)站正是這種活動的具體表現(xiàn)形式。隨著生活“e時代”的到來,上網(wǎng)的人數(shù)越來越多,網(wǎng)上購物將是人們的一大生活方式之一,網(wǎng)上購物系統(tǒng)的完善和便捷將是現(xiàn)代社會必然的需求。綜觀電子商務的歷史,隨著internet/Intranet應用越來越廣,迅速擴展從個人到集團,從企業(yè)到科技、教

10、育、商業(yè),幾乎覆蓋了所有的領(lǐng)域。商品和服務的地理界限被打破,各種公司無論大小,都在忙于建立新的商業(yè)解決方案,來適應新的交易方式。internet/Intranet固有的一些特性,如方便獲得,實時的信息,低廉的成本使得它成為商務解決方案的一種本質(zhì)的驅(qū)動力。而且,在下面這些頗具競爭力的優(yōu)勢下,開發(fā)了本系統(tǒng)來實現(xiàn)和完成電子化的商業(yè)交易過程。本文首先系統(tǒng)地研究了開發(fā)電子商務網(wǎng)站的背景和意義,分析了當今B2C電子商務交易的網(wǎng)站特點和共性,從而得出設(shè)計本網(wǎng)站的思路和方法。本文主要劃分為五大模塊,首先是一些基本的程序界面的瀏覽以及功能的介紹等,然后是數(shù)據(jù)庫的設(shè)計,第三塊主要集中在webServer構(gòu)建上,第

11、四塊是用戶模塊的構(gòu)建,第五塊是管理員模塊的構(gòu)建。最后,對每個功能模塊和整個系統(tǒng)進行了測試,測試結(jié)果表明系統(tǒng)基本具備了網(wǎng)上交易的功能以及快速的響應速度。 第1章 程序瀏覽與功能劃分1.1 功能模塊劃分首先電子商城無論那種方式(B2B;B2C)其流程都是以下幾個步驟,即瀏覽查看商品、進行訂購并下訂單、雙方確認然后付款交貨,完成交易。本設(shè)計按照實現(xiàn)功能來劃分,主要包括兩大模塊:(1) 用戶模塊(2) 管理員模塊1.1.1 用戶模塊其中,用戶模塊是對一個用戶而言所看到的界面,用戶通過該模塊來實現(xiàn)起購買交易的全部功能,而這些功能可以細分為以下幾個部分:(1) 用戶注冊/登錄/驗證模塊。(2) 公告/特價

12、書籍/最新書籍瀏覽模塊。(3) 全部書籍/全部特價書籍瀏覽模塊。(4) 購物車模塊。(5) 服務臺模塊。一個詳細的用戶端流程圖如圖1-1所示。1.1.2 管理員模塊管理員模塊則是后臺管理員所看見的界面,管理員是通過這部分功能來管理書城的,具體劃分以下幾個部分。(1) 管理員登錄模塊(2) 庫存管理模塊(包括添加數(shù)據(jù)/刪除數(shù)據(jù)/設(shè)定特價書籍)(3) 管理員管理模塊(包括添加管理員/刪除管理員/修改管理員信息)(4) 訂單管理模塊(包括訂單確認/訂單發(fā)送)(5) 用戶管理模塊(包括用戶信息查詢/用戶刪除)(6) 公告管理模塊(發(fā)布新公告/刪除公告)一個詳細的管理員流程圖如圖1-2所示。進入書城購物

13、車購買書籍繼續(xù)購買用戶注冊沒注冊是否登錄用戶登錄已注冊,沒登陸已登錄服務臺確定購買獲取訂單號結(jié)束用戶查看公告查看特價商品瀏覽商品開始圖 1-1 用戶端流程圖管理員驗證登錄開始用戶名密碼正確?輸入用戶名密碼錯誤重輸正確管理商品管理特價商品管理訂單管理員管理管理用戶管理公告結(jié)束圖 1-2 管理員端流程圖1.2 程序運行瀏覽1.2.1 用戶模塊運行瀏覽1. 用戶注冊登錄驗證模塊用戶注冊功能是為了用戶訂購書籍、發(fā)送書籍、記錄用戶訂單服務功能,用戶瀏覽商城不需要關(guān)于自己的信息,但是用戶的購買功能呢著需要確定身份,所以,用戶的注冊、登錄、驗證必不可少。在這個模塊下主要包括的功能如下:(1) 用戶注冊:新用

14、戶輸入相應信息。(2) 用戶登錄:用戶輸入用戶名,密碼,以獲得身份確認。(3) 個人信息瀏覽:用戶可以查看自己的各種信息。(4) 個人信息修改:用戶可以修改自己的一些基本信息。(5) 查看用戶訂單:用戶可以查看自己的所有訂單,并且可以查看每一個訂單的確認發(fā)送情況。用戶登錄前的登錄信息編號如圖1-3所示。圖 1-3 用戶登錄注冊頁面2首頁在一個用戶來到書城后,首先應該看到的是商城首頁,而為了要能夠最大限度的吸引顧客,首頁放置的內(nèi)容應該是最吸引顧客的版塊,而這里自然就是特價書籍/最新書籍版面了,所以,首頁上要以這兩塊內(nèi)容為主,然后還可以添加公告版塊,以此發(fā)布一些重要信息。首頁的最后界面如圖1-4所

15、示。圖 1-4 首頁頁面3. 全部書籍/全部特價書籍瀏覽模塊在這個模塊中,用戶可以挑選自己想要的書籍,查看書籍祥情,也可以訂購書籍,同時用戶可能對特價書籍特別感興趣,而首頁由于內(nèi)容限制,不可能列出全部特價書籍信息,所以提供一個特價書籍查看模塊也是十分必要的。同時為了方便用戶瀏覽,對書籍的分類也是必須的,并且也應該支持用戶的分類瀏覽,最后的書籍瀏覽模塊如圖1-5:圖 1-5 書籍瀏覽頁面4. 購物車模塊購物車是電子商城中一個非常重要的模塊,他就是是超市的推車,看到喜歡的商品就把商品裝進去,不喜歡就拿出來,而且可以隨意修改拿進去的數(shù)量,并且查看購物車實惠吧所以購物車中的商品信息顯示出來,并會顯示出

16、每個物品的單價以及所有總價。一個用戶對應一個購物車這個在用戶購物的始終是一致的。購物車界面如圖1-6: 圖 1-6 購物車頁面5. 服務臺模塊這個模塊就是最后的結(jié)賬模塊,在這個模塊中會顯示用戶所有的購買書籍,被給出相應超大的信息,讓用戶添加收件人的信息。模塊界面如圖1-7:圖 1-7 服務臺頁面1.2.2 管理員模塊功能瀏覽1. 管理員登錄模塊管理員想要到呢個了后臺以管理網(wǎng)站,則必須輸入用戶名和密碼來獲得驗證,而且為了安全起見,一般完整后臺登陸頁面的地址是不會在用戶模塊中顯示出來的,而是直接告訴管理員。管理員模塊登陸界面如下圖1-8:圖 1-8 管理員登錄界面2. 庫存管理模塊庫存管理是一個十

17、分重要的模塊,管理員可以在這里為用戶提供商品服務,完成對書籍的添加,刪除,庫存的管理主要包括以下幾個內(nèi)容:(1) 添加、修改書籍。(2) 修改書籍信息。(3) 設(shè)置、取消特價書籍。庫存管理模塊界面如下圖1-9所示。圖 1-9 庫存管理模塊3. 管理員管理模塊在這個模塊中,可以實現(xiàn)對管理員的管理,在一般的電子商務網(wǎng)站中,一般對管理員進行分級,對每一級管理員分配相應的權(quán)限,互相不能越權(quán)。當然了咱就沒那么多規(guī)矩了,只設(shè)置一級權(quán)限。這個模塊的主要功能有:(1) 查看管理員信息。(2) 添加管理員。(3) 刪除管理員(自己本身和最開始設(shè)置的默認管理員不能刪除)。管理員列表查看界面如下圖1-10。圖 1-

18、10 管理員列表查看4. 訂單管理模塊訂單管理模塊直接關(guān)系到用戶所購買的貨物的發(fā)放問題,在用戶生成了一個訂單后,管理員開始對訂單進行處理,首先是必須確認訂單所輸入的信息的正確性,這個主要通過電話核實,然后則是法師貨物,在發(fā)送貨物之后,訂單的狀態(tài)會被標記為“已發(fā)送”這個模塊的主要功能如下:(1) 訂單查看。(2) 訂單狀態(tài)的設(shè)置。(3) 訂單刪除。訂單列表界面如下1-11,訂單詳細信息界面如圖1-14圖 1-11 訂單列表界面圖 1-12 訂單詳細信息5. 用戶管理模塊這個部分的主要功能就是查看用戶信息和刪除用戶。6. 公告管理模塊這個部分主要是發(fā)布商城的各種重要信息,這里生成德公告會在首頁上顯

19、示出來,以提醒用戶相應的信息。主要功能包括:(1) 公告信息的修改(2) 添加新的公告(3) 刪除公告添加新公告界面如圖1-17圖 1-17 添加新公告界面第2章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫在一個信息管理系統(tǒng)中占有非常重要的地位,數(shù)據(jù)庫結(jié)構(gòu)設(shè)計的好壞直接對應用系統(tǒng)的效率及實現(xiàn)的效果產(chǎn)生影響。合理的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計可以提高數(shù)據(jù)存儲的效率,保證數(shù)據(jù)的完整和一致。設(shè)計數(shù)據(jù)庫系統(tǒng)時應該首先充分了解用戶在各個方面的需求,包括現(xiàn)有的及將來可能增加的需求。2.1 數(shù)據(jù)庫設(shè)計構(gòu)建2.1.1 設(shè)計數(shù)據(jù)庫用戶的需求具體體現(xiàn)在各種信息的提供、保存、更新和查詢方面,這就要求數(shù)據(jù)庫結(jié)構(gòu)能滿足各種信息的輸出和輸入。收集基本數(shù)據(jù)、數(shù)據(jù)

20、結(jié)構(gòu)及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為后面的具體設(shè)計打下基礎(chǔ)。通過上述系統(tǒng)功能的分析,針對一般B2C銷售系統(tǒng),總結(jié)出需求信息:請參看附錄。2.1.2 數(shù)據(jù)表間關(guān)系描述根據(jù)表的設(shè)計總結(jié)下面的表間關(guān)系描述。(1) Z_goodsInfo表與Z_GoodsType表是多對一的關(guān)系;表示一個商品對應一個商品類型,而一個商品類型可以有多個商品。(2) Z_adminInfo表與Z_BulletinInfo表式一對多的關(guān)系;表示一個管理員可以發(fā)布多個公告,而一個公告只能由一個管理員發(fā)布。(3) Z_adminInfo表與Z_orderInfo表是一對多的關(guān)系;表示一個管理員可以確認多個訂單,而一

21、個訂單只能被一個管理員確認。(4) Z_orderInfo表與Z_UserInfo表式多對一德關(guān)系,表示一個訂單只能別一個用戶訂購,而一個用戶可以訂購多個訂單。(5) Z_orderInfo表與Z_orderdetail表式一對多的關(guān)系;表示一個訂單對應多個訂單詳細表,而一個訂單詳細表對應一個訂單。第3章 通過WebService構(gòu)建功能函數(shù)3.1 webservice概述Web服務是一種web應用程序,他沒有傳統(tǒng)的web應用程序的用戶界面,而是提供可以調(diào)用的API函數(shù),也就是讀者熟悉的Internet上的web方法。為什么用webservice呢,因為我們的例子中有好多地方要經(jīng)常用到同一個函

22、數(shù),所以為了節(jié)省代碼量,考慮用webservice來創(chuàng)建這些函數(shù)。(暫時理解為公用API就行。)3.2 第一個webservice的函數(shù)首先需要寫到的webservice函數(shù)自然就是對使用最多的數(shù)據(jù)庫進行操作的函數(shù)。創(chuàng)建一個webservice文件,打開webservice.cs在webservi的類里添加數(shù)據(jù)庫德操作函數(shù),代碼如下:public void ExcuteSql(string strSql) string strConn = Data Source=ADIR;Initial Catalog=shop;User ID=*;Password=*; DbProviderFactory

23、dbProviderFactory = DbProviderFactories.GetFactory(System.Data.SqlClient); DbConnection dbconn = dbProviderFactory.CreateConnection(); dbconn.ConnectionString = strConn; dbconn.Open(); /打開連接 DbCommand dbcomm = dbProviderFactory.CreateCommand(); /設(shè)置命令 dbcomm.Connection = dbconn; /綁定連接 dbcomm.ExecuteN

24、onQuery(); /綁定sql dbconn.Close(); dbconn.Dispose(); 以上代碼只能處理無返回的sql語句,對于select語句無能為了,為此這里在添加一個select語句的操作函數(shù)。public DataTable ExcuteSelect(string strSql) string strConn = Data Source=ADIR;Initial Catalog=shop;User ID=*;Pssword=*; DbProviderFactory dbProviderFactory = DbProviderFactories.GetFactory(Sy

25、stem.Data.SqlClient); DbConnection dbConn = dbProviderFactory.CreateConnection(); /設(shè)置連接 dbConn.ConnectionString = strConn; dbConn.Open(); /打開連接 DbCommand dbComm = dbProviderFactory.CreateCommand(); dbComm.Connection = dbConn; /綁定連接 dbComm.CommandText = strSql; /綁定Sql DbDataAdapter adapter = dbProvid

26、erFactory.CreateDataAdapter(); adapter.SelectCommand = dbComm; DataSet dsDataSet = new DataSet(); /初始化dataset adapter.Fill(dsDataSet ,table); /填充書籍到數(shù)據(jù)表 return dsDataSet .Tables table; /返回數(shù)據(jù)表 在這個方法中,返回一個DataTable。這樣,對書籍庫操作的功能函數(shù)就添加成功了,在本節(jié)中,暫時只添加這兩個功能函數(shù),在編程過程中遇到了在添加新的函數(shù)。 第4章 用戶模塊下的網(wǎng)站整體風格構(gòu)建4.1 構(gòu)建用戶登錄和歡迎

27、頁面對于一個網(wǎng)站而言,保持頁面的一致性事一個很重要的部分,而在2.0中提供的一個新的手段就是 Master Page。對于Master Page這里暫時不進行深入介紹,這里只做簡單應用??梢钥闯鲈诒驹O(shè)計中,各個模塊的瀏覽過程中可以看到界面圖中每一頁的最上面都是同樣格式的一個功能面板,用來提供各種鏈接。這些面板如果在每一個頁面中都添加一次,會產(chǎn)生十分多的重復。下面就用 MaserPage來實現(xiàn)“添加一次,全部應用”的功能。4.1.1 添加主功能面板具體步驟如下:在“解決方案資源管理器”面板中選擇“添加新項”,然后選擇“母版頁”,改名為User.master,打開user.maste

28、r頁面,選擇設(shè)計模式,注意到其中的ContentPlaceHolder部分,那個是留給內(nèi)容頁的空間,即只有在內(nèi)容頁的部分是每個頁面的特殊之處,其他的地方則是所有頁面都統(tǒng)一的界面。在頁面上除了ContentPlaceHolder部分以外的地方開始創(chuàng)建主功能面板。具體操作時:首先添加一個表單,然后再表單上添加4個Hyperlink控件,用來連接其他面,暫時可以先不設(shè)置屬性,一個linkbutton控件,用來完成退出功能。4.1.2 添加登錄控件為了構(gòu)建登錄面板,這里通過一個用戶控件來實現(xiàn),在項目中添加一個用戶控件取名為userLogin.ascx打開userLogin.ascx,在設(shè)計模式中添加相

29、應的控件;一個table控件和兩個textbox控件,用來獲得輸入,還有一個lable控件用來顯示提示信息。添加相應的功能代碼,雙擊登錄按鈕,添加click事件代碼。注意在判斷用戶登錄信息正確后的語句,分別創(chuàng)建了兩個session ,其中session“UserLevel”用來區(qū)別該用戶的級別,這里分為兩個級別,一個是user,表示用戶,一個是admin,表示管理員。而session“UserID”則用來標記該用戶。此外注意這個語句:Response.Redirect(Request.CurrentExecutionFilePath);由于用戶登錄可以發(fā)生在多頁面之中,并不一定要求在一開始就登

30、錄(這與編寫論壇不同),所以,登錄之后切換的頁面不能是首頁,而是當前頁。Request.CurrentExecutionFilePath就是獲得當前頁面的路徑。“注冊”按鈕的代碼更為簡單,就一個轉(zhuǎn)向函數(shù),如下:Response.Redirect(“User_Register.aspx”);在母版頁面中添加該用戶控件,方法很簡單,直接拖動該文件至相應位置即可。4.1.3 添加歡迎控件同樣通過構(gòu)建一個用戶控件來顯示歡迎信息。在項目中添加一個新的用戶控件,取名為UserWelcom.ascx。打開該頁面,向其中添加一個table控件和一個label控件,用來顯示用戶名,還有兩個HyperLink控件

31、,用來連接到相應的功能頁面。為了顯示相應的用戶名,需要添加一些代碼,這里會第一次用到webService。打開Userwelcome.ascx.cs文件,首先在主類中創(chuàng)建一個新的webservice對象。語句如下:WebService webService=new WebService();然后再page_Load方法中添加代碼。其中的判斷條件是session“UserID”是否為空,如果不是,則表示已經(jīng)登錄了。接下來看下面這條語句:DataTable dtTable=webService.ExcuteSelect(strSql); 得到數(shù)據(jù)表。這里可以看到對webService的使用就和普通

32、的類沒有什么區(qū)別。通過輸入?yún)?shù)STRSQL,執(zhí)行前面編寫的ExcuteSelect方法,返回一個dataTable。同前面一樣,將這個控件添加到User.master頁面中。這里可能會問,為什么這兩個控件同時都在頁面上?這里就需要對控件的顯示條件作出判斷了,打開user.master.cs文件,在page_load方法體中添加代碼:if (SessionUserLevel = null)/如果用戶沒有登錄 this.login.visible = true; /顯示login控件 this.welcome.Visible = false;/不顯示歡迎控件 else if (SessionUse

33、rLevel.ToString() = User) /如果登錄為普通用戶 this.login.Visible = false; /不顯示login控件 this.welcome.Visible = true; /顯示歡迎控件 判斷條件就是session“UserLevel”,如果為空,則顯示登錄控件,隱藏歡迎控件;如果為User,則相反。4.2 書籍分類導航面板的構(gòu)建添加一個用戶控件,取名為sortTree.ascx.在其中添加一個TreeView控件。為了能夠正確顯示出類型樹的結(jié)構(gòu),需要添加后臺代碼。具體代碼請查看SortTree.ascx.cx文件。 利用遞歸,就能夠得到類型樹的Tree

34、View.當選到某個節(jié)點的時候,首先判斷session“UserLevel”,如果為管理員,則跳轉(zhuǎn)到管理員的書籍列表頁面,否則跳轉(zhuǎn)到用戶看到的書籍列表頁面。注意:由于一個頁面往往會有很多的鏈接頁面,這些頁面現(xiàn)在還沒有生成,但是我們只需要記住其代表什么意思就行,后面會詳細說明最后將這個用戶控件添加到母版頁中即可。這時,網(wǎng)站的大體模板已經(jīng)建立好了,下面將開始添加一個一個具體的頁面。最終界面如圖4-1所示:圖 4-1 母板頁最終界面展示第5章 用戶模塊的構(gòu)建5.1 構(gòu)建用戶模塊組成界面 5.1.1 首頁的構(gòu)建在整個商城中,首先被用戶所看到的自然就是商城的首頁,而首頁中自然就要放置最吸引 顧客的內(nèi)容,

35、所以,在這里選擇的是在首頁顯示出最新的書籍和最新的促銷信息書籍。由于主頁的大小限制,所以這里每一種只列出最新的一本即可。另外,由于電子商城中有時會有通知貼出,所以公告也必須在首頁顯示。確定了之后,現(xiàn)在開始構(gòu)建主頁。第一步很重要,因為設(shè)置了母版頁,所以在一下每個頁面的創(chuàng)建中藥選擇剛剛創(chuàng)建的“母版”,即在添加新項的時候選擇“選擇母版頁”選項。然后再出現(xiàn)的選擇母版頁面班中選擇建立的母版頁,在單擊“確定”按鈕。打開頁面切換到設(shè)計模式,此時可以看到剛添加的到頁面已經(jīng)有了母版頁中的元素。此時就可以開始在頁面中添加相應的元素了。為了顯示最新的上架書籍,需要用一個Table控件,其中添加3個label,分別用

36、來顯示書籍名稱,書籍簡介和書籍價格。在添加一個Image控件,用來顯示書籍圖片。然后再添加兩個linkBotton控件,用來實現(xiàn)“詳細信息”和“訂購”。對于最新促銷的商品也是一樣的設(shè)計,而最下面的公告列表使用了一個dataList控件,在這個控件的ItemTemplete模板中添加一個Hyperlink控件,用來指向該公告的詳細信息;一個Lable控件,用來顯示添加該公告的時間,最后形成的界面如圖5-1所示。圖5-1 首頁界面此時需要注意的是關(guān)于datalist控件中的HyperLink控件和lable控件的數(shù)據(jù)綁定問題。此時由于需要手動綁定,所有這里要用到Eval這個數(shù)據(jù)綁定方法。步驟如下:

37、打開DataList控件的ItemTmeplete模板,在HypeLink控件上右擊,選擇“編輯DataBindings”命令。在彈出的數(shù)據(jù)綁定對話框中,選擇Text,這個是綁定的該HypeLink的顯示文字數(shù)據(jù)。這里自然是現(xiàn)實公告的標題,所以在自定義綁定的下面輸入: Eval(“Bul_Title”)。其中Bul_Title是最后綁定到這個dataList的數(shù)據(jù)表中的一個列的名稱,要實現(xiàn)綁定,必須在最后的數(shù)據(jù)源中存在這個列。其次,由于這個HypeLink需要指向公告的詳細信息頁面。所以其NavigateUrl項也需要綁定,這里綁定到一個叫做Url的列:Eval(“Url”)。同理,對Labl

38、e控件的Text屬性綁定到一個Bul_addDate列:Eval(“Bul_addDate”)。界面設(shè)計完成了,剩下的就是對其個個控件進行編程了。打開default.aspx.cs文件,添加代碼,請查看源碼。代碼前面都是簡單基本的賦值操作。需要注意的是對DataList的數(shù)據(jù)源的構(gòu)建,這里用到的是DataTable,這個DataTable默認的列式z_BulletinInfo數(shù)據(jù)表中的所有列,而我們前面提到的一個HyperLink中的NavigateUrl屬性是綁定到一個叫做Url的列,這個表中沒有,怎么辦呢?這里的方法是新建一個數(shù)據(jù)列,取名就叫Url,然后往其中添加數(shù)據(jù),這個辦法后面會經(jīng)常用

39、到,用戶可以同這個方法自由的構(gòu)建自己的數(shù)據(jù)列。然后添加兩個表示“詳細信息”的linkButton的事件函數(shù)。,單擊這個按鈕之后就能夠進入顯示該書籍的詳細頁面中,那么如何確定到底這個數(shù)據(jù)時那一本呢?這里就需要用到LinkBtton的CommandArgument屬性了,這個屬性就是用來綁定單擊該按鈕的參數(shù),在上面賦值的語句:this.lbtnGoodsInfo.CommandArgument= dtTable.RowsiGoods_ID.ToString();this.lbtnSpecialGoodsInfo.CommandArgument= dtTable.Rowsj Goods_ID.ToS

40、tring();這就是把這兩個linkButton的CommandArgument參數(shù)設(shè)為了該書籍的Goods_ID的值。這樣自然就能夠唯一的確認一本書籍了。以上是介紹了一下參數(shù)的傳遞,然后就要添加對LinkButton控件的事件處理了,因為使用了CommandArgument,所有這里要添加它的Command事件處理,生成的代碼如下:Response.Redirect(User_GoodsInfo.aspx?gid=+e.CommandArgument);這里的e.CommandArgument的值就是前面綁定的Good_ID的值,然后通過QueryString傳遞到書籍詳細信息頁面顯示。這

41、里還有一個“訂購”的LinkButton的事件處理,由于需要到購物車模塊實現(xiàn)之后才能夠添加,所以這個后面再說。5.1.2 公告詳細信息瀏覽頁面的構(gòu)建當用戶在首頁看到想看的公告后,單擊公告的標題,就會看到公告的詳細信息。下面來構(gòu)建公告詳細信息的瀏覽頁面。添加一個新的頁面,取名為User_BulletinInfo.aspx。在頁面中添加3個Label控件,用來顯示公告的標題、內(nèi)容和瀏覽量。公告詳細信息瀏覽頁面如下圖5-2:圖 5-2 公告詳細信息瀏覽頁面添加后臺代碼,這里需要注意的是,該頁每瀏覽一次瀏覽量就增加1。5.1.3 書籍列表、特價書籍列表構(gòu)建用戶在看完了首頁的信息之后,第二步就是去選購自

42、己想要的書籍,而這個自然是在書籍列表頁面中了查找了,所有第二步就構(gòu)建這個頁面。添加一個新的頁面,取名為:User_GoodsList.aspx,同樣是使用母版頁,打開這個頁面,進入設(shè)計模式。這里添加一個Datalist控件來顯示書籍數(shù)據(jù),因為DataList提供強大的模板設(shè)定功能,可以把每一個顯示的項目設(shè)定為自己想要的格式。打開DataList的ItemTemplete模板,向其中添加如下圖5-3所示的控件,然后對其進行綁定,同以前一樣。圖5-3 書籍列表頁面User_GoodsList.aspx界面設(shè)計完成后,開始添加后臺代碼,在前面的sortTree.ascx.cx中我們添加過一條語句:R

43、esponse.Redirect(User_GoodsList.aspx?type= + strTypeID);這里需要對這個Type進行處理,以進行分類顯示,由于使用的是遞歸的算法,通過從最先傳遞來的intTypeID所示的類別開始,遞歸查找器子節(jié)點,當子節(jié)點為葉子節(jié)點是,就查找數(shù)據(jù)庫活動該類型的所有書籍,如果還有子節(jié)點,就繼續(xù)遞歸,這樣,對其頁面的顯示問題就大體解決了,但是需要考慮到一個問題就是,datalist控件沒有進行分頁的功能,很遺憾,他其他方面很強悍,就這里要人郁悶了,沒辦法,這里我們手工編寫一些代碼來進行一下彌補。還有這里的每一個“詳細信息”的linkbutton的指示都是Us

44、er_GoodsInfo.aspx。新建一個頁面User_SpecialGoodsList.aspx,來顯示特價書籍列表,對特價書籍的列表方法集合和書籍列表一樣。這里由于不需要對sortTree.ascx控件傳來的參數(shù)Type進行處理,所有,這里可以直接進行讀取。當然,SQL語句需要變一下:strSql = Select z_GoodsInfo.* , z_GoodsType.* from z_GoodsInfo INNER JOIN z_GoodsType ON z_GoodsInfo.Goods_typeID where z_GoodsInfo.Goods_isSpecial=y orde

45、r by Goods_addDate desc; ;將判斷條件該成了where z_GoodsInfo.Goods_isSpecial=y。特價書籍列表如圖5-4所示:圖 5-4 特價書籍列表User_SpecialGoodsList.aspx對于“訂購”的處理依然要等到購物車設(shè)計完成后。5.1.4 書籍詳細信息查看頁面的構(gòu)建用戶在書籍列表中看到某個數(shù)據(jù)可能是自己想要的書之后,就希望能看看他的詳細信息,對他進行了解,這里就是這個頁面要進行的設(shè)計了。添加一個新頁面,取名叫做User_GoodsInfo.aspx在界面中添加6個Lable控件,用來顯示相應的信息。同樣添加一個“訂購”的LinkBu

46、tton控件。用來實現(xiàn)訂購功能。頁面如圖5-5所示:圖 5-5 書籍詳細信息查看頁面User_GoodsInfo.aspx至此,書籍詳細信息查看界面構(gòu)建完成了。5.1.5注冊頁面的構(gòu)建當用戶選中了想要的商品后,下一步自然是點擊購買了,添加到購物車中。而此時則需要用戶登錄。用戶的登錄代碼前面已經(jīng)寫過,但是倘若對方是第一次登錄,該怎么辦呢,對,那就是要注冊成為用戶了,那么現(xiàn)在就來設(shè)計一下用戶注冊的頁面。新建一個頁面,命名為:User_Register.aspx添加8個Lable控件和一個DropDownList控件,用來得到用戶的輸入信息。添加相應的驗證控件,驗證輸入的完整性,最后的界面如圖5-6

47、所示:圖 5-6注冊頁面User_Register.aspx大家都知道,一個網(wǎng)站中的用戶名只能對應一個用戶,既不允許出現(xiàn)重名的情況。為此在注冊的時候要先查詢輸入的用戶名是否存在。這個功能在以后也會用的,所以先這個函數(shù)添加到WebService.cs文件中。前面介紹的判斷用戶名是否存在,然后若不存在則,注冊成功,注冊成功后對session“UserLevel”和session“UserID”進行賦值,相當于直接登錄了。5.1.6用戶詳細信息查看界面、修改頁面的構(gòu)建當用戶注冊并已經(jīng)成功登錄后,有可能想要修改自己的信息,此時就可以進入用戶詳細信息頁面了,下面開始構(gòu)建用戶詳細信息頁面。添加一個新的頁面

48、,命名為User_UserInfo.aspx往其中添加7個Label控件,用來顯示用戶信息,添加一個button控件,用來表示“修改”信息。最終界面如圖5-7所示:圖 5-7 用戶詳細信息頁面User_UserInfo.aspx添加修改按鈕的事件處理函數(shù):跳轉(zhuǎn)到編輯用戶信息頁面Response.Redirect(User_UserInfoEdit.aspx); 這個是頁面跳轉(zhuǎn)指令。跳轉(zhuǎn)到用戶詳細信息編輯頁面新建一個User_UserInfoEdit.aspx頁面添加相應的控件,如圖5-8所示圖 5-8用戶詳細信息修改頁面至此,用戶的信息有關(guān)的操作頁面完成,接下來就是開始購物的方面。5.1.7

49、購物車的實現(xiàn)這是一個非常重要的功能模塊,它用于幫助用戶完成書籍的選擇,并把書籍提交到服務臺進行結(jié)算。主要功能包括有:(1) 將書籍添加至購物車(2) 瀏覽購物車(3) 瀏覽購物車中的書籍數(shù)量(4) 刪除購物車中的書籍(5) 清空購物車1. 將書籍添加至購物車當用戶在首頁看到喜歡的書籍是或者在瀏覽書籍列表時看到喜歡的書籍,旁邊提供了“訂購”這個linkbutton單擊它即可將書籍放入自己的購物車,十分方便。下面首先實現(xiàn)訂購的功能。由于存在“訂購”這個linkButton的頁面非常多,需要逐個添加,但是由于方法都一樣,這里就以書籍列表中的訂購為例子來說明一下。在書籍列表中,打開DataList的I

50、temTemplete模板,右擊“訂購”這個LinkButton控件,選擇“編輯databindings”命令,然后出現(xiàn)的對話框中選擇CommandArgument,再在自定義綁定中輸入:Eval(“Goods_ID”) 。還有一種方法是在賦值是直接綁定CommandArgument參數(shù),如書籍列表(User_GoodsInfo.aspx.cs)的后臺代碼中國語句:this.lblBuy.CommandArgument=gid; 雖然方法不同,但是意義一樣。這時就要開始思考如何處理這個事件了,首先要明白用戶訂購的實質(zhì)是增加一個(商品名,商品個數(shù))的(名,值)對,比如說購買兩本“Java編程思想

51、”即在購物車中添加一個項(java編程思想,2)??吹竭@個形式,相信您已經(jīng)明白了,這就是一個哈希表的結(jié)構(gòu)所以用哈希表表示用戶購買情況在合適不過了。其次要考慮的是購物車對應一個用戶,即一個用戶對應一個購物車,而不能混淆。同時具備有實效性,即用戶一退出購物車也就實效。這種特性正是session的特性,所以用session來在用戶登錄期間傳遞購物信息是最佳的。在我們的源碼中,hashcar就相當于用戶購物車的結(jié)構(gòu),而session“UserCar”就相當于購物車這個實體,最開始首先判斷用戶是否已經(jīng)有了購物車,如果沒有就從新分配一個給用戶,然后添加一個(名,值)對,其中,名就是書籍ID,值為1表示買了

52、一本,反之如果用戶已經(jīng)有了購物車,而首先判斷購物車中是否已經(jīng)有該書籍,如果有表示用戶想多買一本,此時這本書籍的“值”加1,如果沒有就新添加一個(名,值)對。這時候購物的功能就實現(xiàn)了,下面該瀏覽購物車的功能。2. 瀏覽購物車:User_Car.aspx購物車的信息要顯示出來,必須要有一個專門的頁面,這就是購物車瀏覽頁面。添加一個新頁面,命名為User_Car.aspx。添加一個GirdView控件,選擇編輯列命令。由于這里的GirdView控件的數(shù)據(jù)源不能通過SqlDataSource控件得到,必須自己構(gòu)建數(shù)據(jù)源,所以在字段對話框中吧“自動生成字段”復選框取消選中,然后動手添加5個BoundFi

53、led,分別用于顯示:序號,書籍ID,書籍名稱,單價,總價,然后分別為其綁定DateField屬性,為:no,GoodsID,GoodsName,price,和totalPrice。在添加兩個TemplateField,一個用TextBox來顯示GoodsNum,而將LinkButton的CommandArgument參數(shù)綁定為GoodsID。添加四個按鈕分別為:更新數(shù)量,清空購物車,繼續(xù)購物,前往服務臺。3. 編輯購物車中書籍的數(shù)量即“更新數(shù)量”按鈕的功能。在購物車顯示頁面中,數(shù)量的顯示是通過一個可寫的TextBox控件來實現(xiàn)的。這里向提供的功能是用戶在TextBox控件中填寫的數(shù)量,然后單

54、擊“數(shù)據(jù)更新”按鈕,此時就能夠更新購物車中的數(shù)據(jù)。通過GridView.Rows 來獲得GridView控件顯示的每一行的GridViewRow 對象,然后通過GridViewRow.FindControl方法來獲得GridView中的空,這里是TextBox,獲得更新后的值,并且通過GridViewRows.cell 來獲得每一行的Field的集合。這里想要得到的是GoodsID,為第二個,所以索引為(從開始),最后通過Text屬性來獲得顯示的值。這樣就獲得了一個(名,值)的項,通過循環(huán),得到一個完整的修改后的哈希表,并把這個哈希表的值賦給session“UserCar”,然后重新調(diào)整到該頁

55、面,這樣就實現(xiàn)了更新。4. 刪除購物車中的書籍即添加“刪除”按鈕的功能。在用戶單擊某一行的“刪除”按鈕式,則這一行的數(shù)據(jù)會被刪除。在前面已經(jīng)將這個linkButton的CommandArgument 的參數(shù)設(shè)置為了GoodsID這個數(shù)據(jù)項。所以在這個linkButton 的Command事件中添加下面代碼:protected void lbtnDelete_Command(object sender, CommandEventArgs e) hashCar = (Hashtable)SessionUserCar;/得到購物車的hash表 hashCar.Remove(e.CommandArgument); /刪除書籍 SessionUserCar = hash

溫馨提示

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

評論

0/150

提交評論