我有一个单选按钮列表,标签和下拉菜单如下:SelectedIndexChanged事件没有触发1个列表项
<asp:RadioButtonList id="rbList" runat="server" AutoPostBack="true" EnableViewState="false"
OnSelectedIndexChanged="rbList_SelectedIndexChanged"
RepeatLayout="Table" RepeatDirection="Horizontal" RepeatColumns="3">
<asp:ListItem Selected="True"> Radio 1 </asp:ListItem>
<asp:ListItem> Radio 2 </asp:ListItem>
<asp:ListItem> Radio 3 </asp:ListItem>
</asp:RadioButtonList>
<asp:Label runat="server" ID="lbl" text="1,2" EnableViewState="false"></asp:Label>
<asp:DropDownList runat="server" ID="ddl" Visible="false">
</asp:DropDownList>
我rbList_SelectedIndexChanged如下:
protected void rbList_SelectedIndexChanged(object sender, EventArgs e)
{
if (rbList.SelectedIndex == 0 | rbList.SelectedIndex==1)
{
lbl.Text = "1,2";
ddl.Visible = false;
//ddl.Attributes.Add("style", "display:none");
}
else if (rbList.SelectedIndex == 2)
{
lbl.Text = "3";
ddl.Visible = true;
//ddl.Attributes.Add("style", "");
}
}
现在,当我从改变radio3到radio2,事件像往常一样被解雇,一切看起来不错。但是当我从radio3变成radio1时,我没有看到事件被触发(我插入了一个断点)ddl保持可见,但lbl的值变为1,2。
我的2个问题如下:
1)为什么事件没有得到关于改变从radio3到收音机1解雇?
2)当事件没有被触发时,标签值如何变化?
任何帮助或意见都非常感谢..预先感谢!
这部分解决了我的问题!如果我在if(!IsPostBack)里添加rbList.SelectedIndex = 0,那么它不允许改变任何其他的单选按钮,它总是radio1 ..我没有在我的页面内的UpdatePanel .. – user841311
你不应该需要一个UpdatePanel for这,SelectedIndexChanged事件是一个回传,所以'if'块应该计算为false,而不是将选定的索引重新赋值为0。 –