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

3.7 產品信息模塊設計

3.7.1 產品信息模塊概述

對于一個企業的門戶網站,宣傳自己公司的產品是必不可少的,本企業門戶網站的首頁分類展示了公司的最新產品,而且網站導航條中設置了一個“產品展示”菜單,用戶可以通過選擇其子菜單項查看相關類別的所有產品信息。產品信息頁面運行效果如圖3.18所示。

圖3.18 產品信息頁面

3.7.2 產品信息模塊技術分析

產品信息模塊實現的關鍵是如何下載正在查看的產品,這里主要用到了Response類的AppendHeader方法和WriteFile方法,下面分別對它們進行詳細介紹。

1. AppendHeader方法

用來將HTTP頭添加到輸出流中,其語法格式如下:

public void AppendHeader(string name,string value)

 name:要追加value的HTTP標頭的名稱。

 value:要追加到name標頭的值。

2. WriteFile方法

用來將指定的文件直接寫入HTTP響應輸出流,該方法有4種重載形式,其中,本系統中用到的重載形式如下:

public void WriteFile(string filename)

 filename:要寫入HTTP輸出的文件名。

例如,企業門戶網站中使用Response類的AppendHeader方法和WriteFile方法實現了產品的下載功能,關鍵代碼如下:

注意

這里需要注意的是對文件名進行UTF8編碼,否則,當文件名為中文名時,下載文件會出現文件名亂碼的問題。

3.7.3 產品信息模塊實現過程

本模塊使用的數據表:tb_Product

產品信息模塊的具體實現步驟如下:

(1)新建一個基于MasterPage.master母版頁的Web頁面,命名為Sort.aspx,主要用于查看產品的詳細信息,該頁面中主要用到的控件如表3.9所示。

表3.9 產品信息頁面主要用到的控件

(2)在Sort.aspx頁面中,首先創建公共類DataOperate和ProductOperate的對象,以便調用其中的方法,代碼如下:

例程23 代碼位置:資源包\TM\03\EnterpriseWeb\User\Sort.aspx.cs

Sort.aspx頁面的后臺代碼中自定義了兩個方法,分別為BindInfo方法和BindAllInfo方法。BindInfo方法用來根據接收的產品、軟件或補丁編號查找其詳細信息,并將查找結果顯示在DataList控件中,其實現代碼如下:

例程24 代碼位置:資源包\TM\03\EnterpriseWeb\User\Sort.aspx.cs

BindAllInfo方法用來根據接收的類型編號查找產品、軟件或補丁信息,并將查找結果顯示在DataList控件中。BindAllInfo方法的實現代碼如下:

例程25 代碼位置:資源包\TM\03\EnterpriseWeb\User\Sort.aspx.cs

產品、軟件或補丁的詳細信息是通過在Sort.aspx頁面的HTML代碼頁中對相應的Label控件綁定進行顯示的,由于各Label控件的綁定方式相同,這里以“產品名稱”為例介紹,將數據表中的Name字段綁定到“產品名稱”Label控件上的代碼如下:

例程26 代碼位置:資源包\TM\03\EnterpriseWeb\User\Sort.aspx

<asp:Label ID="labName" runat="server" Font-Size="9pt" ><%#
DataBinder.Eval(Container.DataItem,"Name") %></asp:Label>

Sort.aspx頁面加載時,首先判斷接收的參數是產品、軟件或補丁編號,還是類別編號,如果是產品、軟件或補丁編號,則調用BindInfo方法顯示數據,如果是類別編號,則調用BindAllInfo方法顯示數據。Sort.aspx頁面的Page_Load事件代碼如下:

例程27 代碼位置:資源包\TM\03\EnterpriseWeb\User\Sort.aspx.cs

單擊“點擊下載”超級鏈接,如果附件存在,則下載指定的文件,同時調用公共類ProductOperate中的UpdateLoadNum方法更新文件的下載次數,否則彈出“文件不存在”信息提示。實現下載功能的代碼如下:

例程28 代碼位置:資源包\TM\03\EnterpriseWeb\User\Sort.aspx.cs

LinkButton控件分別用來實現“第一頁”、“上一頁”、“下一頁”和“最后一頁”功能,其實現代碼如下:

例程29 代碼位置:資源包\TM\03\EnterpriseWeb\User\Sort.aspx.cs

主站蜘蛛池模板: 临西县| 罗田县| 乌拉特前旗| 阜新市| 西峡县| 阿城市| 石景山区| 秦皇岛市| 西乌| 中卫市| 尖扎县| 灵山县| 平原县| 枣阳市| 丘北县| 贵州省| 兴义市| 德阳市| 宜宾市| 永吉县| 汉阴县| 偃师市| 阜城县| 沅江市| 米泉市| 乳山市| 容城县| 永修县| 万宁市| 宜宾市| 四平市| 明水县| 南澳县| 喀喇| 望城县| 海口市| 西贡区| 修水县| 郎溪县| 威远县| 边坝县|