列表框已选择索引相同值错误索引号
本文关键字:索引 错误 选择 列表 | 更新日期: 2023-09-27 18:37:04
我在列表框中有相同的值。当我单击索引2(西班牙)时,它选择了索引0(美国)如何传递此错误?
我必须在列表框或备用控件中使用相同的值
谢谢。
这是我的代码;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ListItem li = new ListItem();
li.Text = "USA";
li.Value = "06";
ListItem li2 = new ListItem();
li2.Text = "ITALY";
li2.Value = "34";
ListItem li3 = new ListItem();
li3.Text = "SPAIN";
li3.Value = "06";
ListBox1.Items.Add(li);
ListBox1.Items.Add(li2);
ListBox1.Items.Add(li3);
}
}
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Response.Write(ListBox1.SelectedIndex);
}
因此,该问题是由美国和西班牙包含相同值的事实引起的。 ASP.NET 实际上不会获取列表框中单击的项的选定索引。相反,它使用您选择的值来确定索引。由于美国和西班牙具有相同的值,因此它会选择包含该值的第一个索引。
我不会使用 Response.Write 来获取 ListItem 的选定索引,而是在页面上放置一个标签并将其可见性设置为 false。
然后,在 SelectedIndexChanged 事件中,将标签的文本设置为 ListBox 的选定索引。
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
Label1.Text = ListBox1.SelectedIndex.ToString();
}
如果我
John Doe"、"Jane Doe (1)"、"Mr. Smith"、"Jane Doe (2)"或"John Doe (0)"、"Jane Doe (1)"、"Mr. Smith (2)"、"Jane Doe (3)"。
是你,我会写这样的代码:
if (!IsPostBack)
{
ListItem li = new ListItem();
li.Text = "(06) USA";
li.Value = "01";
ListItem li2 = new ListItem();
li2.Text = "(34) ITALY";
li2.Value = "02";
ListItem li3 = new ListItem();
li3.Text = "(06) SPAIN";
li3.Value = "03";
ListBox1.Items.Add(li);
ListBox1.Items.Add(li2);
ListBox1.Items.Add(li3);
}
然后我会得到括号部分作为值。
PS:我注意到,如果您的列表框中有相同的文本,它将返回最小的SelectedIndex
值(例如"John Doe","Jane Doe","Mr. Smith","Jane Doe"。在这种情况下,尽管单击第二个 Jane Doe,但它返回 1。John Doe = 0, Jane Doe = 1, Mr. Smith = 2, Jane Doe = 3)。所以这个答案也将是这个问题的解决方案。您可以写:"