Как петля через checkboxlist и найти то, что проверено и не проверено
Я пытаюсь выполнить петлю через элементы списка флажков. если он установлен, я хочу установить 1 значение. Если нет, я хочу установить другое значение. Я использовал нижеследующее, но он только дает мне проверенные элементы:
foreach (DataRowView myRow in clbIncludes.CheckedItems)
{
MarkVehicle(myRow);
}
ТИА!
Ответы
Ответ 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, чтобы узнать, проверен ли элемент или нет его индексом.