读书人

RadioButtonList1.SelectedIndexChang

发布时间: 2013-05-02 09:39:29 作者: rapoo

RadioButtonList1.SelectedIndexChanged += new EventHandler(为何无效
ASPX代码
<asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True">
<asp:ListItem>111</asp:ListItem>
<asp:ListItem>222</asp:ListItem>
<asp:ListItem>333</asp:ListItem>
</asp:RadioButtonList>

CS代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
RadioButtonList1.SelectedIndexChanged += new EventHandler(proc);
}
}
protected void proc(object sender, EventArgs e)
{
int i = 0;
//....
}

为何无效,没有触发? AUTOPOSTBACK已经设置为TRUE
[解决办法]
页面第一次加载的时候,你的RadioButtonList中的选项并没有发生变化,所以不会触发SelectedIndexChanged事件的。

<asp:RadioButtonList ID="RadioButtonList1" runat="server" OnSelectedIndexChanged="proc" AutoPostBack="True">
<asp:ListItem>111</asp:ListItem>
<asp:ListItem>222</asp:ListItem>
<asp:ListItem>333</asp:ListItem>
</asp:RadioButtonList>

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// RadioButtonList1.SelectedIndexChanged += new EventHandler(proc);
}
}

protected void proc(object sender, EventArgs e)
{
int i = 0;
//....
}
[解决办法]
不是注册在page_load,而是注册在Page_Init事件内:


protected void Page_Init(object sender, EventArgs e)
{
RadioButtonList1.SelectedIndexChanged += new EventHandler(proc);
}


更详细参考:
http://www.cnblogs.com/insus/archive/2013/04/25/3043604.html

读书人网 >asp.net

热点推荐