DropDownList具有相同的"值"和OnTextChange事件

时间:2016-12-23 11:40:20

标签: asp.net drop-down-menu

ASP.NET项目中,我有一个DropDownList,其中包含三个值,其中两个值

必须具有相同的ValueField:

  
      
  • " 1""黄色"
  •   
  • " 1"," Red"
  •   
  • " 2"," Blue"
  •   

问题在于"SelectedIndexChanged"事件在我改变"黄色"时不会触发到" Red"因为这两个选项具有相同的值。

当我改为" Red"有没有办法制作eventRise。到"Yellow"

我也试过了TextChanged event,但是当它Value and Text change时都会上升。

注意:我无法从PageLoad

调用事件处理程序

1 个答案:

答案 0 :(得分:0)

唯一的方法是通过添加索引使值唯一:Value="1_0"

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
    <asp:ListItem Text="Yellow" Value="1_0"></asp:ListItem>
    <asp:ListItem Text="Red" Value="1_1"></asp:ListItem>
    <asp:ListItem Text="Blue" Value="2_2"></asp:ListItem>
</asp:DropDownList>

或以编程方式添加它们

for (int i = 0; i < DropDownList1.Items.Count; i++)
{
    DropDownList1.Items[i].Value = DropDownList1.Items[i].Value + "_" + i;
}

然后在代码后面分割SelectedValue以获得正确的颜色。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    Label1.Text = DropDownList1.SelectedValue.Split('_')[0];
}