我正在尝试循环复选框列表中的项目。如果选中它,我想设置1个值。如果没有,我想设置另一个值。我正在使用下面但它只给我检查项目:
foreach (DataRowView myRow in clbIncludes.CheckedItems)
{
MarkVehicle(myRow);
}
TIA!
答案 0 :(得分:32)
这将给出一个选定的
列表List<ListItem> items = checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).ToList();
这将给出所选框的值列表(如果需要,则更改文本的值):
var values = checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).Select(n => n.Value ).ToList()
答案 1 :(得分:26)
for (int i = 0; i < clbIncludes.Items.Count; i++)
if (clbIncludes.GetItemChecked(i))
// Do selected stuff
else
// Do unselected stuff
如果检查处于不确定状态,则仍将返回true。您可能想要替换
if (clbIncludes.GetItemChecked(i))
与
if (clbIncludes.GetItemCheckState(i) == CheckState.Checked)
如果您只想包含实际检查的项目。
答案 2 :(得分:22)
尝试这样的事情:
foreach (ListItem listItem in clbIncludes.Items)
{
if (listItem.Selected) {
//do some work
}
else {
//do something else
}
}
答案 3 :(得分:2)
我认为最好的方法是使用CheckedItems
:
foreach (DataRowView objDataRowView in CheckBoxList.CheckedItems)
{
// use objDataRowView as you wish
}
答案 4 :(得分:1)
检查comboxlist.Items[i]
bool CheckedOrUnchecked= comboxlist.CheckedItems.Contains(comboxlist.Items[0]);
我认为它解决了你的目的
答案 5 :(得分:0)
使用CheckBoxList的GetItemChecked或GetItemCheckState方法查明某个项目是否被其索引检查。