1

連絡先のリストがあり、「ベンダー」と「顧客」の間で連絡先リストをフィルター処理するためのドロップダウン ボックスがいくつかあります。

「ベンダー」、「連絡先」を選択し、「オンタリオ」にあるものを並べ替えると、10 件のレコード リストがあり、レコードの 1 つをクリックしてすべての情報を表示します。

しかし、「オンタリオ」の連絡先の 10 件のレコード リストに戻りたいのですが、ソートされたリストを失わないようにするにはどうすればよいですか? 検索を最初からやり直したくありません。戻って、"Ontario" から 10 件のレコードを見つけたいと思います。

助言がありますか?

4

2 に答える 2

1

検索パラメータを URL に入れることができます。

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

もう 1 つのオプションは、セッションでの最後の検索 (Trac などで使用) または Cookie (Bugzilla などで使用) を保存し、再度検索ページにアクセスした場合に再利用することです。ただし、これにより、一度に複数の検索ができなくなります。

于 2012-06-28T16:04:13.640 に答える
0

情報を得るために別のページに移動していて、前のページに戻って検索条件を確認したい場合は、一時ストレージに保存する必要があります。HTTP はステートレスです。そのため、いくつかの一時ストレージの場所が必要です。

Session検索条件を変数 /に保存することを検討してくださいcookies。前のページがロードされたら、最後に保存した検索基準のセッション/Cookie を確認し、それに従って結果をロードします。

EDIT:セッションを使用した簡単な例。

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
}
于 2012-06-28T16:05:18.960 に答える