官术网_书友最值得收藏!

2.8 商品庫存管理模塊設計

2.8.1 商品庫存管理模塊概述

在電子商務系統中對商品信息的管理十分重要,一個好的電子商務系統必須要有一個強大的商品庫存管理模塊。電子商務網站系統的商品庫存管理模塊主要實現對商品信息的管理,包括對商城商品信息和商品類型信息的查詢、添加、修改和刪除功能。

當用戶通過后臺身份驗證后,進入網站后臺管理模塊,單擊展開菜單欄中的“庫存管理”,然后點擊管理按鈕,將會在功能執行區中打開如圖2.28所示的商品管理界面。在該界面的功能管理中,用戶可以根據實際需要查詢、瀏覽、修改和刪除商品信息;而當單擊“商品添加”按鈕時用戶可以根據實際需要添加商品信息。同樣,對商品類別的管理與添加類似。

圖2.28 對添加的商品進行管理

2.8.2 商品庫存管理模塊技術分析

商品管理界面中在顯示商品“所屬類別”和商品“熱銷價”時,主要應用了數據綁定表達式。

在ASP.NET中主要應用的是DataBinder.Eval方法,該方法是一個完全成熟的方法,可以在程序中的任何地方使用。

DataBinder.Eval方法的語法如下:

<%# DataBinder.Eval(Containter.DataItem, expression) %>

Containter.DataItem表達式引用對該表達式進行計算的對象。該表達式通常是一個字符串,表示數據項對象上要訪問的字段的名稱。它可以是一個包括索引和屬性名的表達式。DataItem屬性表示當前容器上下文中的對象。容器通常是即將生成的數據項對象的當前實例。

在ASP.NET中,只要是ASP.NET 1.x中接受DataBinder.Eval方法的地方,就可以使用如下表達式:

<%# Eval(expression) %>

可以看出,ASP.NET 4.5也是完全支持DataBinder對象的。ASP.NET 4.5中的Eval方法是建立在DataBinder.Eval方法之上的一個簡單包裝。該方法代表一種單向數據綁定,它實現了數據讀取的自動化,但是沒有實現數據寫入自動化。如果要實現雙向的數據綁定,可應用ASP.NET 4.5中另一個新的數據綁定方法,即Bind方法讀寫數據項屬性。

2.8.3 商品庫存管理模塊實現過程

本模塊使用的數據表:tb_BookInfo、tb_Detail

1. 設計步驟

(1)在應用程序中創建一個名為Manage的文件夾,在該文件夾下創建一個Web窗體,將其命名為Product.aspx。

(2)通過使用bootstrap+div為整個頁面進行布局。從“工具箱”選項卡中拖放一個TextBox控件、一個Button控件和一個GridView控件。Product.aspx各個控件的屬性設置如表2.6所示。

表2.6 Product.aspx頁中各個控件的屬性設置

2. 代碼實現

在后臺代碼頁(Product.aspx.cs)中編寫代碼前,首先需要定義CommonClass類對象、DBClass類對象和GoodsClass類對象,以便在編寫代碼時,調用該類中的方法。代碼如下:

例程28 代碼位置:資源包\TM\02\B2C\B2C\Manage\ProductAdd.aspx.cs

CommonClass ccObj = new CommonClass();
DBClass dbObj = new DBClass();
GoodsClass gcObj = new GoodsClass();

在Page_Load事件中,調用自定義方法gvBind,顯示商品信息。代碼如下:

例程29 代碼位置:資源包\TM\02\B2C\B2C\Manage\Product.aspx.cs

自定義方法gvBind,首先從商品信息表(tb_BookInfo)中獲取商品信息,然后將獲取的商品信息綁定到GridView控件中。代碼如下:

例程30 代碼位置:資源包\TM\02\B2C\B2C\Manage\Product.aspx.cs

代碼貼士

?GetDataSetStr:調用公共類中的GetDataSetStr方法,執行SQL語句,返回一個數據源的數據表。

?DefaultView:該對象為DataTable的一個默認視圖,并將其值賦予GridView控件的數據源對象DataSource。

?DataKeyNames:該屬性為GridVeiw控件獲取一個包含當前顯示項的主鍵字段的名稱數組。

當用戶輸入關鍵信息后,單擊“搜索”按鈕,將會觸發該按鈕的Click事件。在該事件下,調用自定義方法gvSearchBind綁定查詢后的商品信息。代碼如下:

例程31 代碼位置:資源包\TM\02\B2C\B2C\Manage\Product.aspx.cs

自定義方法gvSearchBind,調用GoodsClass類的search方法,查詢符合條件的商品信息,并將其綁定到GridView控件上。代碼如下:

例程32 代碼位置:資源包\TM\02\B2C\B2C\Manage\Product.aspx.cs在GridView控件的RowDeleting事件下,編寫如下代碼,實現當用戶單擊某個商品后的“刪除”按鈕時,將該商品從商品信息表中刪除。

例程33 代碼位置:資源包\TM\02\B2C\B2C\Manage\Product.aspx.cs

當用戶單擊GridView控件中的“詳細信息”按鈕時,將會跳轉到詳細信息頁面。在該頁面中,用戶可以查看并修改商品信息。

說明

商品信息修改頁的代碼并不復雜,由于篇幅有限,請讀者參見本書隨帶的資源包。

在GridView控件中,“所屬類別”和“熱銷價”的綁定列數據應用了數據表達式DataBinder.Eval方法,其代碼編寫需將頁面切換到HTML源代碼中。代碼如下:

例程34 代碼位置:資源包\TM\02\B2C\B2C\Manage\Product.aspx

代碼貼士

?綁定商品類別號,并通過后臺代碼中的公共方法GetClassName獲取類別名。

?綁定商品最新價,并通過后臺代碼中的公共方法GetVarStr獲取最新商品價格。

2.8.4 單元測試

在編寫該模塊時,當單擊商品管理頁面中的表格控件GridView中的商品“詳細信息”列時,如圖2.29所示,鏈接到修改該商品信息的EditProduct.aspx頁。如圖2.30所示,輸入相關的修改數據后,單擊“修改”按鈕時,將會彈出“修改成功!”對話框,但在表格控件GridView中指定修改的商品信息并沒有變,數據中存在的數據也沒有跟著更改,通過檢查相應的更新SQL語句沒有任何錯誤。

圖2.29 商品管理頁

圖2.30 商品信息修改頁

應用程序中編寫的代碼如下。

在頁面Page_Load事件中,綁定相應的數據庫信息。代碼如下:

在EditProduct.aspx頁中雙擊“修改”按鈕,觸發其Click事件。代碼如下:

通過查找錯誤出處和相關技術方面的分析,發現在頁面Page_Load事件中,沒有判斷頁面是不是第一次加載,沒有應用IsPostBack屬性,該屬性主要用于判斷頁面是否首次加載,并當用戶修改相應信息數據時刷新頁面。正確編寫代碼如下:

主站蜘蛛池模板: 瓦房店市| 双柏县| 连江县| 涞源县| 四子王旗| 宜章县| 长白| 清河县| 铜陵市| 大渡口区| 边坝县| 岳阳县| 宁晋县| 汶上县| 沙坪坝区| 共和县| 隆子县| 高陵县| 安吉县| 镇宁| 常山县| 兴业县| 佛学| 开江县| 莫力| 台湾省| 新竹县| 玛多县| 辽源市| 东海县| 呼和浩特市| 高尔夫| 辽中县| 手游| 铁力市| 蓝山县| 工布江达县| 齐齐哈尔市| 赣州市| 黎平县| 土默特右旗|