2012-02-02 51 views
0

我有一個產品列表頁面。所有的產品都基於三個標準顯示:根據asp.net mvc c中的搜索條件填充數據#

  1. 在左側菜單中的用戶點擊
  2. 當在搜索文本框中用戶輸入和搜索
  3. 當用戶在品牌組合框中選擇

這是考試的URL,由於用戶點擊文章

  1. http://mysite.com/Products?dep=1&cat=2&tab=2:顯示產品具有DEPID = 1,和的categoryID = 2
  2. http://mysite.com/Products?brand=ABC_2&tab=2:顯示有品牌名稱= 「ABC」 和品牌ID = 2
  3. http://mysite.com/Products?tab=2&search=ABCD產品:顯示產品,該產品名稱= 「ABCD」

問題:當用戶點擊下面的每個鏈接時,頁面會刷新,所以我不能混合參數串。我想這3個標準結合在一起,意味着當用戶點擊(1),然後繼續(2)和(3),該網址會:

http://mysite.com/Products?dep=1&cat=2&brand=ABC_2&search=ABCD&tab=2

所以頁面會顯示產品,具有depID = 1,categoryID = 2,品牌id = 2,品牌名稱= ABC和產品名稱=「ABCD」。

這就是我試圖讓(3)在我的Site.Master:

function SearchClick() { 
    window.location = "/Products?tab=2" + ($("#txtsearch").val() != "" || $("#txtsearch").val() 
    == "undefined" ? "&search=" + $("#txtsearch").val() : ""); 
} 

在先進的感謝。

回答

1

我注意到你正在使用jQuery,我會建議:

//using Request.Params 
string Dept = Request.Params["dep"]; 
string Cat = Request.Params["cat"]; 
string Brand = Request.Params["brand"]; 
//capture the char after '?' or '&' and pass into Params["char"] 
//do your search function. 

This鏈接會幫助你。

如果你想在頁面刷新後保留它,你可以將它存儲在Session

string theDept = Request.Params["dep"]; 
Session["dep"] = aa;  

string dep = (string)Session["dep"]; 
+0

看我的編輯。謝謝。 – rofans91 2012-02-02 07:21:54

+0

錯誤:對象引用未設置爲對象實例,聲明爲'Session [「dep」] = Request.Params [「dep」]。ToString();' – titi 2012-02-02 07:49:38

+0

試試我的編輯。對不起這是我的錯。 – rofans91 2012-02-02 07:56:25

1

這應該讓你開始

後端:

  • 創建3個屬性一個SearchModel:搜索,品牌,DEP
  • 有一個動作的產品,需要在搜索模型

前端:

  • 創建一個表單,崗位上述產品的行動,確保它有一個提交按鈕
  • 創建表格ID /名稱中的文本框=「搜索」
  • 創建表格內的DDL ID /名稱=「出發」
  • 創建表格ID /名稱=「品牌」

  • 使用jQuery裏面隱藏字段,以更新的隱藏字段時,在左欄中的用戶點擊

  • 我們ËjQuery來提交表單隨時的用戶:點擊提交按鈕,改變了DDL,或點擊左側欄
1

如果您正在使用AJAX來加載你的頁面你也可以試試這個。

$.ajax({ 
     url: '/Products', 
     type: 'GET', 
     dataType: 'json', 
     cache: false, 
     async: false, 
     data: { dep: 1, brand: abc_2, search:abcd, tab:2 }, 
     success: function (data) { 
     //Do your work here 
       }, 
     error: function (ex) { 
      alert('Error.'); 
     } 

    }); 

你通常把3個標準,如搜索文本框,品牌/部門下拉同一頁面,然後點擊一個按鈕會觸發此查詢。

相關問題