我有一个单选按钮列表,其中包含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)
{
}
第一个项目被选中,没有问题,但是当我尝试选择第二个元素时,除了回发之外没有任何事情发生。 单选按钮似乎有问题。我尝试在页面上添加两个单选按钮,看它们是否有效。即使是简单的单选按钮也没有响应选择。但是当我添加复选框时,它们可以正常工作。
答案 0 :(得分:2)
如果您选择后面代码中的项目,则事件不会触发。
来自MSDN:
当列表控件中的选择在发布到服务器的帖子之间发生更改时,会引发SelectedIndexChanged事件。
此处有更多信息:
答案 1 :(得分:0)
从onselectedindexchanged="RadioButtonList1_SelectedIndexChanged"
控件中移除RadioButtonList
并尝试添加
RadioButtonList1.SelectedIndexChanged += new EventHandler(RadioButtonList1_SelectedIndexChanged);
在 之外的Page_Load
中
if (!IsPostBack)
{
}
块。看看是否有效。