как узнать, установлен ли флажок в списке или нет в asp.net - PullRequest
5 голосов
/ 04 ноября 2011

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

if (выбран флажок) {сделать это} else {сделать это}

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

int roleselected = ckl_EditRole.Items.SelectedIndex;

Ответы [ 2 ]

5 голосов
/ 04 ноября 2011

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

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

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

foreach( ListItem li in ckl_EditRole.Items )
{
    if( li.Selected )
    {
        // Do Something
    }
}
0 голосов
/ 04 ноября 2011

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

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

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

...