2011-11-04 3 views
3

asp.net의 확인란 목록에서 선택한 인덱스를 가져 오는 방법. 목록 상자를 선택했는지 또는 반복하지 않고 알 수 있는지 찾기 위해 루프를 반복해야합니까? (Checkboxlist 선택)하면 나는 {이렇게}이asp.net에서 확인란 목록이 선택되어 있는지 확인하는 방법

을하고 싶은 다른 {이렇게}

방법 확인란 목록을 선택하거나하지 asp.net의 경우 찾을 수

int roleselected = ckl_EditRole.Items.SelectedIndex; 

답변

3

CheckBoxList의 경우 SelectedIndex은 CheckBoxList의 첫 번째 선택된 인덱스를 제공합니다. -1이 아니면 뭔가가 선택되었습니다. 이것은 당신이 찾고있는 것에 충분할 수 있습니다. CheckBoxList가 복수의 선택을 할 수 있기 때문에

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

하지만, 당신은 아마 항목을 반복하려는 선택한 사람을 찾습니다. 당신의 의도가 코드에 의해 주어진 선택된 체크 박스의 인덱스를 취득하는 경우

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

, 당신은 또한 아래 (forloop없이) Linq를 통해이 작업을 수행 할 수 있습니다.

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

이 문은 선택 확인란의 인덱스를 포함 INT의 배열을 반환합니다.