2011-01-20 12 views
0

ラジオボタンと、選択に基づいてデータを動的に取り込むテキストエリアを持つページがあります。ラジオボタンは記事のタイトルのリストとして機能し、選択すると記事の内容が表示されます。radiobuttonlistのpage_loadメソッドを変更します。

私のpageloadメソッドでは、ユーザーが自分の値を指すブラウザのURLを閲覧できるようにしたいと考えています。そうすれば、別のソース内の記事にリンクすることができます。

現在、私が持っている方法は、私は手動で、次の例のURLを入力すると、私は、ボタンの選択にリンクすることができます:URLがブラウザに表示されるように

http://localhost/test/Articles_test.aspx?selected=1 
http://localhost/test/Articles_test.aspx?selected=2 

私はこれを変更したいのですがラジオボタンが選択されたとき。さらに、ページのロード時には、値パラメータが指定されていない場合は、デフォルトで "0"インデックスに設定されます。

protected void Page_Load(object sender, EventArgs e) 
{  
    if (!IsPostBack) 
    { 
     int selected; 

     if (int.TryParse(Request.QueryString["selected"], out selected)) 
      RadioButtonList1.SelectedIndex = selected; 
      RadioButtonList1.DataBind();   
    } 
} 



protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

     string strRedirect; 
     strRedirect = "frm_Articles.aspx?selected=" + RadioButtonList1.SelectedIndex; 
     Response.Redirect(strRedirect); 

} 

答えて

1

変更をポストバックするようにラジオボタンリストを設定します。次に、ハンドラーで、適切なURLにリダイレクトします。

protected void Page_Load(object sender, EventArgs e) 
{  
    int selected; 

    if (int.TryParse(Request.QueryString["selected"], out selected)) 
     RadioButtonList1.SelectedIndex = selected; 
     RadioButtonList1.DataBind();   
} 
protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 

    string strRedirect; 
    strRedirect = "frm_Articles.aspx?selected=" + RadioButtonList1.SelectedIndex; 
    Response.Redirect(strRedirect); 
} 
+0

入力していただきありがとうございます。これのための任意のコードスニペット? –

+0

私はradiobuttonlistにAutoPostBack = "true"を既に持っています。 –

+0

このハンドラを追加しましたが動作しているようですが、データがページの読み込みにバインドされていません。だから私は、ラジオリストやテキストエリアのデータが表示されない限り、私はf5'を無効にします 'protected void RadioButtonList1_SelectedIndexChanged(Object sender、EventArgs e){string strRedirect; strRedirect = "frm_Articles.aspx?selected =" + RadioButtonList1.SelectedIndex; Response.Redirect(strRedirect); } ' –

関連する問題