2016-07-29 12 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> оказывает как <select> с <option> s в формате HTML. Значение сохраняется по обратной стороне, а не по тексту. Поэтому он не может определить, какое значение вам нужно, когда есть несколько вариантов с одинаковым значением, поэтому он принял первый. Рекомендуется использовать уникальные значения параметров.

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> 

Как, выбирая B или C всегда будет выбирать A; где A является индексом 0th для этого конкретного значения 100.