1

我在 ASP.net 中的单选按钮列表有一些问题,由于某种原因,当我选择此项目时,它不会让我选择单选按钮列表中的第二个项目(索引为 1),所选项目返回 0(第一个物品)。当我调试代码以查看所选项目是什么时,由于某种原因它显示 0,即使我按了第二个项目(索引应该是 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());
    }
4

3 回答 3

2

如果您可以向我们展示一些您的代码隐藏或更彻底地描述您的流程和事件,那将是很好的。我想说的是,您必须对单选按钮列表的选择进行数据绑定,或者在页面加载时通过某些标准对其选择进行初始化。

如果其中任何一个是正确的,您将需要插入一个 !IsPostBack 条件,以确保您不会通过不恰当地重新绑定控件或以编程方式重新分配其选定选项来覆盖任何潜在事件。

于 2010-02-27T13:40:48.853 回答
1

是的,您在检查数据之前重新绑定数据(因此选择更改)。

您在页面生命周期的哪个时间检查该值?而且,当您执行数据绑定时?

最好是可以标记中绑定(通过某种数据源,我通常使用ObjectDataSource,但无论如何都可以)。

如果不这样做,则需要在页面处于“PostBack”模式时防止数据绑定,否则检查值将来不及。

于 2010-02-27T13:39:10.067 回答
0

我有同样的问题。我发现这是因为值listItem(两个不同的listItems的值相同)。
由和listItem构造:textvalue

  • text用于在页面中显示。
  • value用于其他东西。

如果您添加两个具有相同值的 ListItem,您将获得该行为:单击一个项目时,第一个被选中。

于 2014-07-31T18:35:01.293 回答