从DropDownList中删除列表项

14 asp.net drop-down-menu

我在gridview中有一个下拉列表,当gridview加载时,它从数据源加载.有人可以告诉我如何循环下拉列表并根据if条件从列表中删除某些项目.

Can*_*var 37

无需循环项目,只需找到该项目并将其删除:

ListItem itemToRemove = myDropDown.Items.FindByValue("value");
if (itemToRemove != null)
{
    myDropDown.Items.Remove(itemToRemove);
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您知道要删除的项的索引,请使用RemoveAt方法:

myDropDown.Items.RemoveAt(0);
Run Code Online (Sandbox Code Playgroud)

但是如果你想要循环,那么循环:

foreach (ListItem item in myDropDown.Items)
{
    // your stuff
}
Run Code Online (Sandbox Code Playgroud)


Jas*_*kan 7

您不能使用foreach删除项目,因为一旦删除了项目,集合就会被修改,并且循环会抛出异常.

如果必须遍历集合以删除多个项目,最佳解决方案是在集合中向后循环.我的C#很生锈,所以下面是VB.应该很容易转换.

For x As Integer = myDropDown.Items.Count - 1 to 0 Step -1
    Dim item As ListItem = myDropDown.Items(x)
    If item.TestToSeeIfItShouldBeRemoved = True
        myDropDown.Items.RemoveAt(x)
    End If
End For
Run Code Online (Sandbox Code Playgroud)