簡體   English   中英

返回上一頁時如何保留搜索過濾器?

[英]How can I keep my search filters when I go back to a previous web page?

我有一個聯系人列表,並且有幾個下拉框可以在“供應商”和“客戶”之間過濾我的聯系人列表。

如果我選擇“供應商”,“聯系人”中的任何一個並對“安大略省”中的那些進行排序,則我有10條記錄列表,我選擇其中一條記錄來顯示他的所有信息。

但是,現在我想回到“安大略省”的10個聯系人記錄列表,如何做到不松散已排序的列表? 我不想再次開始搜索,我想回去找到“安大略”的10條記錄。

有什么建議么?

您可以將搜索參數放在URL中,例如

http://example.com/search?select=vendors&location=Ontario

另一種選擇是將最后一次搜索存儲在會話中(例如由Trac使用)或cookie(例如由Bugzilla使用),如果再次訪問搜索頁面,則重新使用它。 但是,這可以防止一次多次搜索。

如果要導航到其他信息頁面,並且想要返回上一頁並查看所具有的搜索條件,則應將其存儲在臨時存儲中。 HTTP是無狀態的,因此我們需要一些臨時存儲位置。

您可以考慮將搜索條件存儲在Session變量/ cookies 當上一頁加載時,檢查會話/ Cookie以了解您保存的最后一個搜索條件,並根據該條件加載結果。

編輯 :使用會話的簡單示例。

public class SearchCriteria
{
  public string Type{ set;get;}
  public string Location { set;get;}
  //other properties based on your scenario
}

然后,在重定向到新頁面(信息頁面)之前,將值設置為會話

var search=new SearchCriteria();
search.Type="Vendors";  //hard coded for example. you may replace with your form values
search.Location="Ontario";
Session["SearchCriteria"]=search;
Response.Redirect("info.aspx?id=someId");

在此搜索頁面的PageLoad事件中,檢查會話

if(Session["SearchCriteria"]!=null)
{
    var search=(SearchCriteria) Session["SearchCriteria"];
    //Now load the search based on this search criteria.
    // check for search.Location/search.Type
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM