2014-04-07 5 views
0

ASP.NET 응용 프로그램에는 Listbox1과 Listbox2라는 두 개의 목록 상자가 있습니다. Listbox1은 몇 개의 listitem을 가지고 있고 Multiple Selection Mode에있다. 전송 단추를 누르면 Listbox1의 선택된 항목을 Listbox2로 이동해야합니다. 나는 Single Selection Move를 시도했으나 정상적으로 작동합니다. 이제 다중 선택에 도움이 필요합니다.여러 목록 상자 항목을 다른 목록 상자로 가져 오는 방법

코드 단일 선택

 strItemText = lstAvailableItems.SelectedItem.Text 
    iItemCode = lstAvailableItems.SelectedValue 
    lstAvailableItems.Items.Remove(New ListItem(strItemText, iItemCode)) 
    lstSelectedItems.Items.Add(New ListItem(strItemText, iItemCode)) 

목록 상자 이미지

ListBox

내가> 버튼을 하나 선택 항목이 선택 항목 목록 상자에 사용 가능한 항목 목록 상자에서 이동할 누르면. 다중 선택을 위해이 작업을 수행하는 방법은 무엇입니까?

답변

3

원본과 @ Arman의 조합입니다.

Dim lstRemoveItem As New List(Of ListItem) 

    For Each li As ListItem In lstAvailableItems.Items 
     If li.Selected Then 
      lstRemoveItem.Add(New ListItem(li.Text, li.Value))  
      ' can't remove from the collection while looping through it  
     End If 
    Next 

    For Each li As ListItem In lstRemoveItem 
     lstSelectedItems.Items.Add(li)  ' add to "selected" items 
     lstAvailableItems.Items.Remove(li) ' remove from the original available items 
    Next 
+0

감사합니다. 내 lstAvailableItems에서 4000 항목이 있습니다. 선택한 항목을 얻기 위해 실행하는 데 너무 오래 걸리는 디버깅을하는 동안이 작업을 수행하는 다른 간단한 방법이 있습니까? – Manivel

+0

@Manivel, GetSelectedIndices는 현재 선택된 항목에 대한 인덱스 값의 배열을 가져옵니다. 그러나 나는 그것이 얼마나 빠 른지 잘 모릅니다. 'Dim selectedValues ​​() As Integer = lstAvailableItems.GetSelectedIndices()'이렇게 많은 항목을 사용하면 일반적으로 다른 사용자 인터페이스 요소를 사용하는 것이 좋습니다 (사용자가 AR12FC와 같은 부분 항목으로 검색 한 다음 더 짧은 목록에서 선택하게하는 경우). UI 전문가가 아닙니다.) – phaedra

0

목록 사용 목록 상자의 모든 항목을 반복하고 선택한 항목이 무엇이든 목록에 추가합니다.

Dim lstRemoveItem As New List(Of ListItem) 

For Each _item As ListItem In lstAvailableItems.Items 
    If _item.Selected Then 
     lstRemoveItem.Add(_item) 
     'here, method to add item to the first list. 
    End If 
Next 

For Each _item As ListItem In lstRemoveItem 
    lstSelectedItems.Items.Add(_item) 
Next 

원하는 것은 아니지만 변수를 쉽게 구성 할 수 있습니다.

관련 문제