我正在尝试遍历复选框列表中的项目。如果被勾选,我想设置一个值。否则,我想设置另一个值。我曾尝试使用下面这个代码,但它只会给我打勾的项目:
foreach (DataRowView myRow in clbIncludes.CheckedItems)
{
MarkVehicle(myRow);
}
foreach (DataRowView myRow in clbIncludes.CheckedItems)
{
MarkVehicle(myRow);
}
List<ListItem> items = checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).ToList();
这将给出所选框的值的列表(如果需要文本,请将Value更改为Text):
var values = checkboxlist.Items.Cast<ListItem>().Where(n => n.Selected).Select(n => n.Value ).ToList()
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)
如果您只想包括实际选中的项目。
尝试像这样:
foreach (ListItem listItem in clbIncludes.Items)
{
if (listItem.Selected) {
//do some work
}
else {
//do something else
}
}
CheckedItems
: foreach (DataRowView objDataRowView in CheckBoxList.CheckedItems)
{
// use objDataRowView as you wish
}
使用循环检查每个索引中的comboxlist.Items[i]
bool CheckedOrUnchecked= comboxlist.CheckedItems.Contains(comboxlist.Items[0]);
我认为这可以解决你的问题。