我有一个下拉列表,其中包含以下几个项目(格式为"name-number"(:
George Michael - 456456
Justin Dukes - 5644654
Peter Heins - 5456454
Mark Twain - 4454564
现在,我必须根据其他查询的值从上面的列表中删除一个项目。
我的另一个查询给了我一个字符串格式的数字,我必须删除上面下拉列表中完全相同的项目第二部分(连字符之后(。
例如:我的查询给了我"5456454"。
现在我必须从下拉列表中删除与我的查询返回的数字匹配的第三项(彼得·海因斯 - 5456454(。
我正在尝试使用
ddl.Items.Remove
但是我没有得到我应该传递的参数。下拉列表中的文本和值字段相同,我无法修改。所以我不能使用
ddl.Items.FindByValue()
有什么帮助吗?
提前谢谢。
你可以做这样的事情:
var removeItem = ddl.Items.Cast<ListItem>()
.Where(x => x.Value.Contains(number))
.FirstOrDefault()
ddl.Items.Remove(removeItem);
如果您使用 ListItem 对象填充 DropDownList,我会将文本设置为"Peter Heins - 5456454",将值设置为"5456454"。
ListItem exampleItem = new ListItem("Peter Heins - 5456454", "5456454");
然后,您可以按照您的描述进行操作并致电
string value = "5456454";
ListItem valueToRemove = ddl.Items.FindByValue(valueToRemove);
dd1.Remove(valuetoRemove);
编辑:如果您绝对无法更改值(无论是出于学校目的还是其他原因(,我会做这样的事情。
string id = "5456454";
foreach (ListItem item in dd1.Items)
{
if (item.Text.Contains(id))
{
dd1.Items.Remove(item);
}
}