0

別のページからオプション ドロップダウン ボックスの特定の値にリンクできますか?

言い換えれば、私がページ 1 にいて、3 つの異なる値を持つオプション ドロップダウン ボックスがあるページ 2 へのリンクを固定したいとしましょう。デフォルトでは、ページ 2 に移動すると、ドロップダウン オプション ボックスに値 1 が表示されているとします。

ページ 2 にリンクして、そのオプション ボックスの値をその場で変更することは可能ですか? 一方、ページ 1 のリンクをクリックすると、ページ 2 の 1 ではなく値 3 が自動的に表示されます。

4

2 に答える 2

1

これは確かに可能です。クエリ文字列でフラグを渡すことができます。したがって、page1 には、「page2.aspx?option=3」のような page2 へのリンクがあります。次に、page2 のPageLoadメソッドで、クエリ文字列 ( ) からその値を読み取りRequest.QueryString["option"]、選択した項目をDropDownList適切に設定します。

あなたが持っている1ページ1...

<a href="page2.aspx?option=3">link to page 2</a>

Alの例に基づいて、page2のコードビハインドで...

void Page_Load(object sender, EventArgs e) {
   if (!Page.IsPostBack) {
      int option;
      if(int.TryParse(Request.QueryString["option"], out option) { //Only set the value if it is actually an integer
         ddlList.SelectedIndex = option;
      }
   }
}
于 2009-05-18T04:07:15.703 に答える
0

ジョン・フリーランドの答えは、基本的に私がする方法です。おそらく、Page_Load 関数内の分離コード クラスにリスト インデックスを設定するコードを配置することをお勧めします。

ASP.Net セッションで設定するオプションの値を保存することもできますが、ユーザーがサイトを飛び回るようになると、少し面倒になります。2 ページ目に戻っても、セッション変数が予期しない値に設定されている可能性があります。また、ユーザーがしばらく非アクティブだったり、サーバーがリセットされたりすると、セッションが削除されるという問題が発生する可能性があります。プラス面としては、Session オブジェクトに配置すると、ページ間を行き来することができ、必要なすべてのデータを手元に置いておくことができます。

サンプルを見たい場合は、次のようにしてみてください。


void Page_Load (object sender, EventArgs e) {
   if (! Page.IsPostBack) {
     ddlList.SelectedIndex = Request.QueryString["option"]
   }

コードを !IsPostBack セクション内に配置して、ユーザーが最初にページに誘導されたときにのみ実行されるようにします。

于 2009-05-18T04:33:38.387 に答える