可以';t两个ListItem对象具有相同的value属性

本文关键字:属性 value 对象 ListItem 两个 可以 | 更新日期: 2023-09-27 17:59:17

我的代码看起来像

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

现在,当我尝试选择B时,默认情况下总是选择A。从未选择B。这种行为的原因是什么?

可以';t两个ListItem对象具有相同的value属性

<asp:ListBox>在HTML中呈现为具有<option><select>。该值在回发中持久化,而不是在文本中持久化。因此,当有多个选项具有相同的值时,它无法判断您想要哪个值,所以它假设第一个。最佳做法是使用唯一的选项值。

建议对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;其中CCD_ 10是该特定值CCD_ 12的CCD_。