#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, который будет содержать индекс выбранных флажков.