Проверка наличия в CheckBoxList выбранных значений

Я хотел бы узнать самый быстрый/самый простой способ проверить, имеет ли элемент управления CheckBoxList какие-либо отмеченные элементы или нет, я говорю о целом списке флажков в целом, а не о каком-либо флажке.

Ответ 1

Это должно помочь:

bool isAnySelected = checkBoxList.Items.Any(i => i.Selected);

.Any - это метод расширения Linq, поэтому вам понадобится ссылка System.Linq или .System.Linq.Extensions (не помню, какая именно) в вашем коде.

Ответ 2

Метод расширения Linq является опрятным, но вы также можете просто проверить SelectedIndex:

bool isAnySelected = CheckBoxList1.SelectedIndex != -1;

Если ничего не отмечено, значение SelectedIndex равно -1.

Ответ 3

Для тех, кто приходит сюда через 5 лет после выбранного ответа, коллекция Items не перечислима, поэтому .Any(...) не будет работать. Однако вы можете сделать следующее:

If cblCheckboxList.Items.Cast(Of ListItem).Any(Function(x) x.Selected) then...

Ответ 4

Выбранный ответ велик, но теперь вы можете просто изменить код, добавив функцию OfType. проверьте следующее:

bool isAnySelected = checkBoxList.Items.OfType<ListItem>().Any(i => 
i.Selected);

Надеюсь, это поможет.