简体   繁体   English

RadioButtonList SelectedIndexChanged事件未触发

[英]RadioButtonList SelectedIndexChanged event not firing

I have radiobuttonlist on asp view control. 我在ASP视图控件上有radiobuttonlist。 I'm populating the radiobuttonlist dynamicaly at runtime. 我在运行时动态地填充了单选按钮列表。 but the selectedindexchange event not firing. 但selectedindexchange事件未触发。 I try enabling autopostback, page.oninit but its not firing. 我尝试启用自动回发,page.oninit,但没有触发。

<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>

my onpage_load code 我的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();
        }

May be you lost event handler for your RadioButtonList . 可能是您丢失了RadioButtonList事件处理程序。 You can create it by double cliking on it in Design view. 您可以通过在“设计”视图中双击它来创建它。 this will create event handler for it. 这将为其创建事件处理程序。

I'm fairly sure that you'redatabinding the RadioButtonList also on postbacks. 我相当确定您也在回发上重新绑定RadioButtonList Do that only if(!IsPostBack) . if(!IsPostBack)时才if(!IsPostBack)做。

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

Otherwise events are not triggered. 否则,不会触发事件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM