[英]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.