как узнать, выбран ли список флажков или нет в asp.net

#asp.net #checkboxlist

#asp.net #список флажков

Вопрос:

Как получить выбранный индекс в списке флажков в asp.net . Должен ли я выполнить цикл, чтобы узнать, выбрано ли поле списка, или я могу узнать, не делая этого. Я хочу сделать это

if(Флажок установлен) {сделать это} else {сделать это}

как узнать, выбран ли список флажков или нет в asp.net

 int roleselected = ckl_EditRole.Items.SelectedIndex;
  

Ответ №1:

Для списка флажков SelectedIndex предоставит вам только первый выбранный индекс в списке флажков. Если это не -1, значит, что-то было выбрано. Этого может быть достаточно для того, что вы ищете.

 if( ckl_EditRole.SelectedIndex != -1 )
{
// Do Something
}
  

Но, поскольку список флажков может содержать несколько вариантов выбора, вы, вероятно, захотите просмотреть элементы и найти выбранные из них.

 foreach( ListItem li in ckl_EditRole.Items )
{
    if( li.Selected )
    {
        // Do Something
    }
}
  

Ответ №2:

Если вы намерены получить индекс выбранного флажка, указанный в вашем коде, вы также можете добиться этого с помощью Linq (без forloop), как показано ниже.

 ckl_EditRoleItems.OfType<ListItem>().Where(p=>p.Selected).Select(p => ckl_EditRoleItems.Items.IndexOf(p)).ToArray<int>();
  

Этот оператор вернет массив int, который будет содержать индекс выбранных флажков.