12

我想知道检查 CheckBoxList 控件是否有任何选中项的最快/最简单的方法,我说的是整个复选框列表,而不是单个复选框。

4

4 回答 4

19

Linq 扩展方法很简洁,但您也可以只检查 SelectedIndex:

bool isAnySelected = CheckBoxList1.SelectedIndex != -1;

如果未选中任何内容,则 SelectedIndex 为 -1。

于 2011-08-01T15:27:39.927 回答
7

这个应该有帮助:

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

.Any是一种 Linq 扩展方法,因此您需要在代码隐藏中使用System.Linqor.System.Linq.Extensions引用(不记得是哪个)。

于 2010-08-15T09:42:13.270 回答
2

选择的答案很好,但现在您可以通过添加OfType函数来简单地修改代码。检查以下内容:

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

我希望这有帮助。

于 2017-12-13T09:39:31.483 回答
2

对于在选定答案 5 年后来到这里的任何人,Items 集合是不可枚举的,因此.Any(...)将不起作用。但是,您可以执行以下操作:

If cblCheckboxList.Items.Cast(Of ListItem).Any(Function(x) x.Selected) then...
于 2017-06-19T14:23:22.383 回答