チェックボックスリストの項目をループしようとしています。チェックされている場合、値を設定したい。そうでない場合は、別の値を設定したいと思います。以下を使用していましたが、チェックされたアイテムのみが表示されます。
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();
これにより、選択したボックスの値のリストが表示されます (必要に応じてテキストの値を変更します)。
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]);
私はそれがあなたの目的を解決すると思います
CheckBoxList の GetItemChecked または GetItemCheckState メソッドを使用して、項目がインデックスによってチェックされているかどうかを調べます。