-1

私はradiobuttonlistユーザーコントロールに住んでいます。このユーザーコントロールは親ユーザーコントロールのリピーターに存在し、そのユーザーコントロールは送信ボタンのあるページに存在します。

だからこのようなもの:

<page>
<UserControl1>
  <Repeater>
    <UserControl2>
      <radiobuttonlist>
    </UserControl2>
  </Repeater>
</UserControl1>
<Submit button />
</page>

radiobuttonlist、のコードビハインドに動的に入力されますUserControl2。問題は、フォームを送信するときに、SelectedValueのにアクセスする必要がありradiobuttonlist、その値は常に空であるということです。を設定するメソッドを最初に起動radiobuttonlistしたselectedvalueとしても、RBLのは空です。SelectedIndexChangedRBLにイベントハンドラーがありますが、起動しません。

親ページをポストバックさせるときにSelectedValueを取得できるようにするには、何をする必要がありますか?radiobuttonlist

4

2 に答える 2

1

私はそれを動かしました。演算の優先順位の問題だったと思います。修正は、UserControl2のOnInit()でradiobuttonlistのイベントハンドラーを動的に宣言することでした。

protected override void OnInit(EventArgs e) 
{ 
    base.OnInit(e);
    rblOptions.SelectedIndexChanged += new EventHandler(ctrlOptions_SelectedIndexChanged);
} 

それを行うと、ポストバックでUserControlを再インスタンス化していたにもかかわらず、イベントが発生し始めました。イベントが発生していたので、ViewStateに保持しなくてもSelectedIndexを取得できました。

于 2012-09-12T13:35:09.503 に答える
0

データを投稿するときは、データを再バインドして、選択したイベントまたは値を消去します。

(ユーザーコントロールの)Page_Loadでこのコードを試してください

If(! IsPostBack)
{
   //You build RadioButtonList

}

そして、ViewStateでデータを永続化します。EnableViewState="true"

于 2012-09-07T19:53:26.540 に答える