2016-07-29 141 views
2

我的代码看起来像不能两个ListItem对象具有相同的值属性吗?

<asp:ListBox ID="ListBox1" runat="server"> 
    <asp:ListItem Value="100">A</asp:ListItem> 
    <asp:ListItem Value="100">B</asp:ListItem> 
</asp:ListBox> 

现在,当我尝试选择B,它在默认情况下选择始终。 B从未被选中。这种行为的原因是什么?

+3

你需要有两个项目相同的值? – StingyJack

回答

4

<asp:ListBox>以HTML形式呈现为<select><option> s。该值在回发中保留,而不是文本。因此,当有多个选项具有相同的值时,它无法分辨出您想要哪个值,因此它假设了第一个值。使用唯一选项值是最佳做法。

0

我们推荐2个或更多的项目使用不同的值。没有两个项目可以具有相同的值。

设置AutoPostBack="True"并且您会发现无论您在ListBox中添加了多少项,它总是会选择该特定值的0th索引。

<asp:ListBox ID="ListBox1" runat="server" AutoPostBack="True"> 
     <asp:ListItem Value="101">D</asp:ListItem> 
     <asp:ListItem Value="100">A</asp:ListItem> 
     <asp:ListItem Value="100">B</asp:ListItem> 
     <asp:ListItem Value="102">E</asp:ListItem> 
     <asp:ListItem Value="100">C</asp:ListItem> 
</asp:ListBox> 

一样,选择BC将始终选择A;其中A是用于该特定值1000th的索引。

相关问题