2010-02-27 87 views
1

即时通讯在ASP.net中的单选按钮列表,由于某种原因,当我选择此项目时,不会让我选择单选按钮列表中的第二项(索引1)选定的项目将返回到0(第一项)。当我调试代码,看看选择的项目是什么,它显示0由于某种原因,即使我按第二项(索引应该是1)ASP.Net单选按钮列表问题

任何人都可以想到我可能会做错什么??

在Web表单侧

我有这个

     <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()); 
    } 

回答

2

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

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

+0

事情是,我有一个类似的代码在一个原型项目iv一直在工作,它工作正常,另一件奇怪的事情是,我可以选择列表中的第三项和第四项罚款。只有当我选择第二个项目时,它将值设置回第一个项目由于某种原因! 任何想法?? – c11ada 2010-02-27 13:58:08

+0

@ c11ada:是的,我昨天帮助同事完成了这个确切的行为。他不得不深入研究他的一些代码,但他发现了一行代码中的第二个选项。这最终导致JS回发代码无法识别更改。 – 2010-02-27 14:13:16

+0

我的最后一个菜鸟错误,在更深入地查看我的代码并查看正在转储到radiobuttonlist中的数据后,我发现前两项具有相同的文本(12和12)...更改了第二个一到13,这解决了这个问题。我不知道文本对选定的索引有影响! 感谢您的帮助! – c11ada 2010-02-27 15:29:22

1

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

什么时候在页面生命周期中检查值?而且,当你执行数据绑定时呢?

这是最好的,如果你可以绑定标记(通过某种数据源,我通常使用ObjectDataSource,但无论什么都可以)。

如果你不这样做,当页面处于“PostBack”模式时,你需要防止数据绑定,否则检查值就太迟了。

0

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

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

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