我在ASP.net中的单选按钮列表有一些问题,由于某种原因它不会让我选择单选按钮列表中的第二项(索引为1)当我选择此项时所选项目返回到0 (第一项)。当我调试代码以查看所选项目是什么时,它出于某种原因显示0,即使我按下第2项(索引应为1)
任何人都可以想到我在这里做错了什么吗?
在网络表单方面我有这个
<asp:RadioButtonList ID="RadioButtonList1" runat="server" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged" AutoPostBack="true">
</asp:RadioButtonList>
然后在脚本方面,通过像这样的数组
来填充单选按钮列表 for (i = 0; i < answersJArray[i].Length; i++)
{
RadioButtonList1.Items.Add(answersJArray[i].ToString());
}
答案 0 :(得分:2)
如果您能向我们展示一些代码隐藏或更全面地描述您的流程和事件,那将是一件好事。我要说你必须数据绑定radiobuttonlist的选择或通过页面加载的某些标准初始化它的选择。
如果其中任何一个都正确,您将要插入一个!IsPostBack条件,以确保您不会通过不正确地重新绑定控件或以编程方式重新分配其选定选项来覆盖任何潜在事件。
答案 1 :(得分:1)
是的,您在检查数据之前重新绑定数据(因此选择更改)。
您在页面生命周期中的哪个时间检查值?而且,当你执行数据绑定时?
最好是你可以在标记中绑定(通过某种数据源,我通常使用ObjectDataSource
,但无论如何都可以。)
如果你不这样做,你需要在页面处于“PostBack”模式时阻止数据绑定,否则检查值是否为时已晚。
答案 2 :(得分:0)
我遇到了同样的问题。
我发现它是因为listItem
的值(两个不同的listItems的相同值)
listItem
由text
和value
构成:
text
用于在页面中显示。 value
用于for
其他的东西。如果添加两个具有相同值的ListItem,您将获得该行为:单击某个项目时,将选择第一个。