
客戶(hù)在瀏覽公司網(wǎng)站時(shí),常常會(huì )對一些產(chǎn)品進(jìn)行較為簡(jiǎn)單的查詢(xún)搜索,本實(shí)例將講解其實(shí)現過(guò)程。
效果說(shuō)明客戶(hù)可以在如圖 86-1 所示的頁(yè)面中選擇特別查詢(xún)字段,輸入查詢(xún)數據,對產(chǎn)品進(jìn)行模糊查詢(xún),結果如圖 86-2 所示。
創(chuàng )作構思在“ index.aspx ”頁(yè)面中添加下拉列表、文本框及按鈕,完成產(chǎn)品搜索頁(yè)面的設置,制作出跟實(shí)例 85 中樹(shù)形目錄索引顯示頁(yè)面相同的頁(yè)面作為產(chǎn)品搜索頁(yè)面,然后設置程序以實(shí)現產(chǎn)品搜索。

操作步驟
步驟一產(chǎn)品搜索頁(yè)面的設置
( 1 )在“ LeftTb ”表格中添加 4 行并設置樣式。打開(kāi)“ index.aspx ”,在設計視圖里的“ LeftTb ”表格中添加 4 行并設置樣式,如圖 86-3 中圓角方框所示。
( 2 )添加控件。單擊 ASP.NET 快捷菜單欄上的【 asp :下拉列表】按鈕,為新添加的第 2 行添加下拉列表控件,如圖 86-4 所示。

( 3 )添加列表標簽及相應的值。在新添加的下拉列表“ FieldList ”屬性窗口中單擊【列表項】按鈕,在彈出的【列表項】對話(huà)框中添加 3 個(gè)標簽,一個(gè)標簽為“產(chǎn)品編號”,其值為“ CPID ”;一個(gè)標簽為“產(chǎn)品名”,其值為“ CPNAME ”;一個(gè)標簽為“產(chǎn)品分類(lèi)”,其值為“ CPFL ”,結果如圖 86-5 所示。
( 4 )繼續在新添加的行中添加文本框,設 ID 為“ SearchTxt ”,并添加兩個(gè)按鈕,一個(gè)按鈕為“搜索”, ID 為“ GoBt ”;另一個(gè)按鈕為“高級搜索”, ID 為“ TopgoBt ”,結果如圖 86-6 所示。

步驟二實(shí)現產(chǎn)品搜索
( 1 )切換到代碼視圖,在“ <script Runat="Server"> ”中添加“ GoBt_click ”過(guò)程,其代碼如下所述。
Sub GoBt_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect("CpSearch.aspx?keyfield="+SearchTxt.Text+"&keyindex="+ FieldList.SelectedValue)
End Sub
(讀者可打開(kāi)【光盤(pán)】|【源文件】|【實(shí)例 86 】|【 86.1.txt 】文件,直接復制)
程序說(shuō)明:
單擊【搜索】按鈕,則執行該過(guò)程。該過(guò)程主要是將頁(yè)面指向“ CpSearch.aspx ”,并傳遞“ keyfield ”、“ keyindex ”兩個(gè)參數。“ keyfield ”參數用于存儲客戶(hù)搜索時(shí)在【 FieldList 】下拉列表中選擇的關(guān)鍵字段,“ keyindex ”參數用于存儲客戶(hù)搜索時(shí)在【 SearchTxt 】文本框中輸入的數據。
( 2 )在“ <script Runat="Server"> ”中添加另一個(gè)過(guò)程“ TopgoBt_Click ”,其代碼如下所述。
Sub TopgoBt_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Redirect("TopSearch.aspx")
End Sub
(讀者可打開(kāi)【光盤(pán)】|【源文件】|【實(shí)例 86 】|【 86.2.txt 】文件,直接復制)
( 3 )綁定“ GoBt_click ”過(guò)程到【搜索】按鈕的“ OnClick ”響應事件,綁定“ TopgoBt_Click ”過(guò)程到【高級搜索】按鈕的“ OnClick ”響應事件。
( 4 )打開(kāi)“ TreeSearch.aspx ”,該頁(yè)面是在實(shí)例 85 中建立的,用于顯示單擊樹(shù)形目錄節點(diǎn)進(jìn)行搜索后的結果。由于產(chǎn)品搜索結果顯示頁(yè)面與樹(shù)形目錄搜索的結果顯示頁(yè)面設計相同,所以可以直接將其另存為“ CpSearch.aspx ”。
( 5 )修改數據集“ TrSearchData ”查詢(xún)命令。雖然產(chǎn)品搜索結果顯示頁(yè)面與樹(shù)形目錄搜索結果顯示頁(yè)面設計相同,但是搜索的查詢(xún)命令顯然是不同的,所以要對頁(yè)面中數據集“ TrSearchData ”有關(guān)查詢(xún)命令進(jìn)行修改。刪除“ CpSearch.aspx ”頁(yè)面中的“ Page_Load ”過(guò)程,重新添加如下所述的過(guò)程。
Sub Page_Load(ByVal Sender As Object, ByVal e As EventArgs)
TrSearchData.CommandText="SELECT * FROM DreamweaverCP WHERE " _
&Trim(Request.QueryString("keyindex"))& " LIKE '%" _
&Trim(Request.QueryString("keyfield"))&"%' ORDER BY CPID ASC"
TrSearchData.Debug=true
End Sub
(讀者可打開(kāi)【光盤(pán)】|【源文件】|【實(shí)例 86 】|【 86.3.txt 】文件,直接復制)
提示:查詢(xún)命令采用了模式匹配運算符“ LIKE ”,并結合“ % ”進(jìn)行模糊查詢(xún)。例如 SELECT * FROM DreamweaverCP WHERE CPFL LIKE “% 日用 %” ,該查詢(xún)是要查詢(xún)“ DreamweaverCP ”表里“ CPFL ”(產(chǎn)品分類(lèi))字段中含有“日用”二字的所有產(chǎn)品。
( 6 )保存“ CpSearch.aspx ”、“ index.aspx ”頁(yè)面,在 IE 中預覽“ index.aspx ”,效果如圖 86-1 所示,在產(chǎn)品搜索文本框中輸入“日用”,單擊【搜索】按鈕,結果如圖 86-2 所示。
本實(shí)例主要運用了 SQL 模糊查詢(xún),作了簡(jiǎn)單查詢(xún)的介紹。在實(shí)際中,這樣的查詢(xún)是遠遠不能滿(mǎn)足客戶(hù)更大的查詢(xún)要求的,實(shí)例 89 將在這基礎上介紹高級搜索實(shí)現。至此,本實(shí)例介紹完畢。
聯(lián)系客服