2009-05-18 15 views
0

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

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

2ページにリンクして、そのオプションボックスの値をオンザフライで変更できますか? 1ページ目のリンクをクリックすると、2ページ目に1の代わりに3という値が自動的に表示されます。

答えて

1

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

一つのページ1 ...アルの例に基づいてPAGE2の分離コードでは、

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

...

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; 
     } 
    } 
} 
+0

ありがとうございました。私はasp.netで新しいのです。今説明した内容のコードサンプルを私に渡せますか? – arcadian

0

ジョン・フリーランドの答えは基本的に私はそれを行うだろう方法です。おそらく、コードを配置して、Page_Load関数内のコードビハインドクラスにリストインデックスを設定したいと思うでしょう。

ASP.Netセッションで設定するオプションの値を保存することもできますが、ユーザーがサイトをバウンスさせるようにすると少し難しくなります。彼らはページ2に戻り、セッション変数が予期せぬものに設定されている可能性があります。また、ユーザーがしばらくの間アクティブでない場合、またはサーバーがリセットされた場合、セッションが削除されるという問題に遭遇する可能性があります。プラスの面では、セッションオブジェクトに配置すると、ページ間を行き来し、必要なすべてのデータを適切に保つことができます。 !あなたはそれだけで、ユーザーがページを対象とする最初の時間を実行するようにIsPostBackプロパティセクション内のコードを入れたい


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

:あなたがサンプルを見たい場合は

は、のようなものを試してみてください。

関連する問題