2016-07-29 12 views
2

私はBを選択しようとすると、私のコードは、デフォルトで、今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は決して選択されない。この行動の理由は何ですか?

+3

2つのアイテムに同じ値を設定する必要がありますか? – StingyJack

答えて

4

<asp:ListBox><select>となり、HTMLでは<option>と表示されます。この値は、テキストではなく、ポストバック全体で保持されます。だから、同じ値を持つ複数のオプションがあるときに、あなたが望む値を知ることができないので、最初のものとみなします。固有のオプション値を使用することをお勧めします。

0

2つ以上の項目に異なる値を使用することをお勧めします。 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

関連する問題