Удаление элементов списка от DropDownList

Я соглашаюсь с Ryan.

Ваша проблема состоит в том, что "следующее" отделение не является "ребенком" A. Нет никакого пути к HTML или jQuery, чтобы знать, что Ваш "a" элемент связан с дочерним отделением в DOM. Обертывание их и помещение парения на обертке означают, что они связаны.

Обратите внимание на то, что его код не соответствует лучшим практикам, все же. Не устанавливайте скрытый стиль, встроенный на элементах; если у пользователя будет CSS, но не JavaScript, элемент скроется и не будет в состоянии быть показанным. Лучшая практика должна поместить то объявление в document.ready событие.

14
задан skaffman 11 September 2009 в 07:50
поделиться

2 ответа

Нет необходимости зацикливать элементы, просто найдите элемент и удалите его:

ListItem itemToRemove = myDropDown.Items.FindByValue("value");
if (itemToRemove != null)
{
    myDropDown.Items.Remove(itemToRemove);
}

Или, если вы знаете индекс элемента, который нужно удалить, используйте метод RemoveAt:

myDropDown.Items.RemoveAt(0);

Но если вы все равно хотите выполнить цикл, вот цикл:

foreach (ListItem item in myDropDown.Items)
{
    // your stuff
}
37
ответ дан 1 December 2019 в 06:31
поделиться

Вы не можете использовать 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
7
ответ дан 1 December 2019 в 06:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: