RadioButtonList selectedindexchanged事件无法在asp.net中触发时该怎么办?

时间:2015-01-08 13:24:37

标签: c# asp.net radiobuttonlist

我有一个单选按钮列表,其中包含2个项目。这是aspx代码:

<asp:RadioButtonList ID="RadioButtonList1" runat="server" Font-Bold="True" 
                     Height="52px" Width="181px" AutoPostBack="True" EnableTheming="True"
                     EnableViewState="true" onselectedindexchanged="RadioButtonList1_SelectedIndexChanged">
    <asp:ListItem Value="Head of family "></asp:ListItem>
    <asp:ListItem Value="Show all">All Family Members</asp:ListItem>
</asp:RadioButtonList>

首页加载页面时,我通过以下代码将第一个单选按钮项目设置为所选项目:

protected void Page_Load(object sender, EventArgs e)
{
    try
    {
        if (!IsPostBack)
        {                
            RadioButtonList1.Items[0].Selected = true;              
        }
    }
    catch (Exception ce)
    {
        ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + ce.Message + "');", true);
    }         
}

但是在所有这些之后,selectedindexchanged事件不会触发。我尝试将radiViewState属性设置为对于radiobuttonlist以及页面的true。我也尝试通过aspx代码设置第一个项目而不是它在页面加载时,但没有任何效果。应该做什么?这是selectedindexchanged事件:

protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
{

}

第一个项目被选中,没有问题,但是当我尝试选择第二个元素时,除了回发之外没有任何事情发生。 单选按钮似乎有问题。我尝试在页面上添加两个单选按钮,看它们是否有效。即使是简单的单选按钮也没有响应选择。但是当我添加复选框时,它们可以正常工作。

2 个答案:

答案 0 :(得分:2)

如果您选择后面代码中的项目,则事件不会触发。

来自MSDN:

  

当列表控件中的选择在发布到服务器的帖子之间发生更改时,会引发SelectedIndexChanged事件。

此处有更多信息:

ListControl.OnSelectedIndexChanged Method

答案 1 :(得分:0)

onselectedindexchanged="RadioButtonList1_SelectedIndexChanged"控件中移除RadioButtonList并尝试添加

RadioButtonList1.SelectedIndexChanged += new EventHandler(RadioButtonList1_SelectedIndexChanged);

之外的Page_Load

if (!IsPostBack)
{                

}

块。看看是否有效。