在ASP.NET
项目中,我有一个DropDownList
,其中包含三个值,其中两个值
必须具有相同的ValueField:
- " 1""黄色"
- " 1"," Red"
- " 2"," Blue"
问题在于"SelectedIndexChanged"
事件在我改变"黄色"时不会触发到" Red"因为这两个选项具有相同的值。
当我改为" Red"有没有办法制作eventRise。到"Yellow"
?
我也试过了TextChanged event
,但是当它Value and Text change
时都会上升。
注意:我无法从PageLoad
调用事件处理程序答案 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];
}