21

チェックボックスリストの項目をループしようとしています。チェックされている場合、値を設定したい。そうでない場合は、別の値を設定したいと思います。以下を使用していましたが、チェックされたアイテムのみが表示されます。

foreach (DataRowView myRow in clbIncludes.CheckedItems)
{
    MarkVehicle(myRow);
}
4

6 に答える 6

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()
于 2010-09-27T12:53:08.440 に答える
27
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)

実際にチェックされた項目のみを含めたい場合。

于 2008-12-28T00:13:58.057 に答える
23

次のようなことを試してください:

foreach (ListItem listItem in clbIncludes.Items)
{
    if (listItem.Selected) { 
        //do some work 
    }
    else { 
        //do something else 
    }
}
于 2008-12-27T21:58:49.763 に答える
2

これを行う最良の方法は、次を使用することだと思いますCheckedItems

 foreach (DataRowView objDataRowView in CheckBoxList.CheckedItems)
 {
     // use objDataRowView as you wish                
 }
于 2013-06-09T13:27:46.373 に答える
1

の各インデックスに対してループを使用してチェックしますcomboxlist.Items[i]

bool CheckedOrUnchecked= comboxlist.CheckedItems.Contains(comboxlist.Items[0]);

私はそれがあなたの目的を解決すると思います

于 2012-06-30T07:10:12.833 に答える
0

CheckBoxList の GetItemChecked または GetItemCheckState メソッドを使用して、項目がインデックスによってチェックされているかどうかを調べます。

于 2008-12-27T21:57:47.707 に答える