2012-05-11 74 views
0

私はaspビューコントロールでradiobuttonlistを持っています。実行時にラジオボタンリストを動的に入力しています。選択された索引変更イベントは起動しません。私はautopostback、page.oninitを有効にしようとしますが、起動しません。RadioButtonList SelectedIndexChangedイベントが起動しない

<asp:MultiView ID="MultiView1" runat="server"> 
      <asp:View ID="View1" runat="server"> 
       <br /> 
       <asp:Label ID="Label1" runat="server" Text="Label" CssClass="text"></asp:Label> 
       &nbsp;<asp:Label ID="Label2" runat="server" Text="Label" CssClass="text"></asp:Label> 

       <br /> 
       <asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" 
        onselectedindexchanged="RadioButtonList1_SelectedIndexChanged1"> 
       </asp:RadioButtonList> 
       <br /> 

       <p align="center"> 
        <asp:Button ID="Button1" runat="server" Text="Previous" onclick="Button1_Click" Width="100px" />&nbsp;&nbsp;&nbsp;&nbsp; 
        <asp:Button ID="Button2" runat="server" Text="Next" onclick="Button2_Click" Width="100px" /> 
       </p> 


      </asp:View> 
    </asp:MultiView> 

私onpage_loadコード

if (!IsPostBack) 
     { 
      cnn.Open(); 
      cmd.Connection = cnn; 

      cmd.CommandText = "SELECT ")"; 
      adp.SelectCommand = cmd; 
      adp.Fill(ds); 
      cnn.Close(); 

      dt = new DataTable("Answered"); 
      dt.Columns.Add("Serial", typeof(int)); 
      dt.Columns.Add("question", typeof(string)); 
      dt.Columns.Add("opt1", typeof(string)); 
      dt.Columns.Add("opt2", typeof(string)); 
      dt.Columns.Add("opt3", typeof(string)); 
      dt.Columns.Add("opt4", typeof(string)); 
      dt.Columns.Add("answer", typeof(int)); 
      dt.Columns.Add("selected", typeof(int)); 

      foreach (DataRow r in ds.Tables[0].Rows) 
      { 
       dr = dt.NewRow(); 
       dr["Serial"] = dt.Rows.Count + 1; 
       dr["question"] = r["question"]; 
       dr["opt1"] = r["opt1"].ToString(); 
       dr["opt2"] = r["opt2"].ToString(); 
       dr["opt3"] = r["opt3"].ToString(); 
       dr["opt4"] = r["opt4"].ToString(); 
       dr["answer"] = Convert.ToInt16(r["answer"].ToString()); 
       dr["selected"] = -1; 
       dt.Rows.Add(dr); 
      } 
      Session["Answered"] = dt; 
      Show(); 
     } 
+0

あなたは、あなたのRadioButtonListをポストバックでもデータバインドしているのでしょうか?それは 'if(!IsPostBack)'だけです。 –

+0

なぜDataTableをセッションに格納していますか?なぜDataTableを別のものにコピーしていますか? DataAdapterを使用する場合は、接続を開いたり閉じたりする必要はありません。エラーが発生した場合は、 'using-statement'やtry/catch/finallyを使用していないので、接続が開いたままになります。 'Show()'とは何ですか? –

+0

私はオンライン試験モジュールで作業して、ユーザ状態と計算結果を保存してセッション中にデータラベルを保存します。 – Enigma34

答えて

0

は、あなたのRadioButtonListのイベントハンドラを失われることがあります。デザインビューでダブルクリックして作成することができます。これはイベントハンドラを作成します。

0

ポストバックでもRadioButtonListもあなたにバインドしています。それはif(!IsPostBack)だけです。

protected void Page_Load(Object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
     BindRadioButonList(); 
} 

それ以外のイベントは発生しません。

関連する問題