2008-11-07 5 views
0

항목이 선택되었는지 또는 목록 상자에 항목이 없는지 어떻게 확인합니까? 그래서 단추를 제거 할 수 있지만 목록 상자에서 항목을 선택하면 해당 단추를 실행하면됩니다. 전 C# 뒤에 asp.net 코드를 사용하여. 이 유효성 검사가 서버 측에서 발생한 경우 선호합니다. 리스트 박스의 선택된 지수가 0보다 크거나 같으면목록 상자 유효성 검사

환호 .. 버튼 클릭에 대한 콜백

답변

-1
for (int i = 0; i < lbSrc.Items.Count; i++) 
{ 
    if (lbSrc.Items[i].Selected == true) 
    { 
     lbSrc.Items.RemoveAt(lbSrc.SelectedIndex); 
    } 
} 

이 내가 생각 해낸 것입니다.

1

그냥 확인. (listBox.SelectedIndex> = 0) ...

+0

으로 수정 @ jons911 관찰. – tvanfosson

1

은, selectedIndex의 제로 기반하므로 확인이 있어야한다 조기 - 당신의 prob desc에 근거한 접근 방식 & 아무것도 선택하지 않으면 ListBox.SelectedIndex는 -1을 반환합니다..

그래서 tvanfosson의 버튼 이벤트 처리기 코드를 일부 빌려 왔습니다.

protected void removeButton_Click(object sender, EventArgs e) 
{ 
    if (listBox.SelectedIndex < 0) { return; } 
    // do whatever you wish to here to remove the list item 
} 
0

당신은 함께 가야 할 수 있습니다

경우 : 사실

protected void removeButton_Click(object sender, EventArgs e) 
{ 
    if (listBox.SelectedIndex >= 0) 
    { 
     listBox.Items.RemoveAt(listBox.SelectedIndex); 
    } 
} 
0

컬렉션에서 항목을 제거하려면 뒤로 루프해야합니다.

for (int i=lbSrc.Items.Count - 1, i>=0, i--) 
{ 
    //code to check the selected state and remove the item 
} 
1

여러 항목을 제거하려면 항목을 역으로 구문 분석해야합니다.

protected void removeButton_Click(object sender, EventArgs e) 
{ 
    for (int i = listBox.Items.Count - 1; i >= 0; i--) 
     listBox.Items.RemoveAt(i); 
} 

평소와 같이 구문 분석하면 결과가 예상치 않게 나타날 수 있습니다. 예는 : 당신이 항목으로 무엇을보고 당신이 실제로 삭제됩니다 항목 1, 당신이 항목에 0을 제거하면 당신은 지금 당신이 믿는 것을 제거하려고하면 다음 항목 1은 새 항목을 0 된다 2.