我有一个联系人列表,我有几个下拉框来过滤“供应商”和“客户”之间的联系人列表。
如果我选择任何一个,“供应商”,“联系人”并对那些位于“安大略省”的人进行排序,并且我有一个10个记录列表,我会勾选其中一个记录以显示他的所有信息。
但是现在我想回到我在“安大略省”的10个联系人记录列表中,我是如何做到这一点的,不要忽略排序列表?我不想重新开始我的搜索,我想回去找到“安大略省”的10条记录。
有什么建议吗?
答案 0 :(得分:1)
您可以将搜索参数放在网址中,例如
http://example.com/search?select=vendors&location=Ontario
另一种选择是将最后一次搜索存储在会话中(例如由Trac使用)或cookie(例如由Bugzilla使用)并在再次访问搜索页面时重新使用它。但是,这可以防止多次搜索。
答案 1 :(得分:0)
如果您要导航到不同的页面以获取信息,并且您想要返回上一页并查看您拥有的搜索条件,则应将其存储在某个临时存储中。 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
}