Подтвердить что ты не робот

Как петля через checkboxlist и найти то, что проверено и не проверено

Я пытаюсь выполнить петлю через элементы списка флажков. если он установлен, я хочу установить 1 значение. Если нет, я хочу установить другое значение. Я использовал нижеследующее, но он только дает мне проверенные элементы:

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

ТИА!

4b9b3361

Ответ 1

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

Это даст список выбранных

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()

Ответ 3

Попробуйте что-то вроде этого:

foreach (ListItem listItem in clbIncludes.Items)
{
    if (listItem.Selected) { 
        //do some work 
    }
    else { 
        //do something else 
    }
}

Ответ 4

проверить его использование цикла для каждого индекса в comboxlist.Items[i]

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

Я думаю, что он решает вашу цель

Ответ 5

Я думаю, что лучший способ сделать это - использовать CheckedItems:

 foreach (DataRowView objDataRowView in CheckBoxList.CheckedItems)
 {
     // use objDataRowView as you wish                
 }

Ответ 6

Используйте метод CheckBoxList GetItemChecked или GetItemCheckState, чтобы узнать, проверен ли элемент или нет его индексом.