L'ho fatto tempo fa LATO SERVER così:
codice:
<form id="Form1" method="post" runat="server">
<asp:ListBox id="ListBox1" SelectionMode=Multiple Width=300 Height=300 runat="server"></asp:ListBox>
<asp:Button id="Button1" runat="server" Text=">> Aggiungi"></asp:Button>
<asp:Button id="Button2" runat="server" Text="Rimuovi <<"></asp:Button>
<asp:ListBox id="ListBox2" Width=300 Height=300 SelectionMode=Multiple runat="server"></asp:ListBox>
</form>
codice:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim temp_arraylist1 As New ArrayList
Dim temp_arraylist2 As New ArrayList
For Each elementolista As System.Web.UI.WebControls.ListItem In ListBox1.Items
If elementolista.Selected = True Then
' destinato alla seconda listbox
temp_arraylist2.Add(elementolista)
Else
' destinato alla prima listbox
temp_arraylist1.Add(elementolista)
End If
Next
ListBox1.DataSource = temp_arraylist1
ListBox1.DataBind()
If ListBox2.Items.Count = 0 Then
ListBox2.DataSource = temp_arraylist2
ListBox2.DataBind()
Else
Dim extra_arraylist As New ArrayList
' prendo gli elementi presenti nella listbox2
For Each elemento As ListItem In ListBox2.Items
extra_arraylist.Add(elemento)
Next
' ...e li aggiungo a quelli selezionati nella prima
For Each elemento2 As ListItem In temp_arraylist2
extra_arraylist.Add(elemento2)
Next
' e poi metto il totale degli elementi nella listbox2
ListBox2.DataSource = extra_arraylist
ListBox2.DataBind()
End If
End Sub
Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim temp_arraylist1 As New ArrayList
Dim temp_arraylist2 As New ArrayList
For Each elementolista As System.Web.UI.WebControls.ListItem In ListBox2.Items
If elementolista.Selected = True Then
' destinato alla seconda listbox
temp_arraylist1.Add(elementolista)
Else
' destinato alla prima listbox
temp_arraylist2.Add(elementolista)
End If
Next
ListBox2.DataSource = temp_arraylist2
ListBox2.DataBind()
If ListBox1.Items.Count = 0 Then
ListBox1.DataSource = temp_arraylist1
ListBox1.DataBind()
Else
Dim extra_arraylist As New ArrayList
' prendo gli elementi presenti nella listbox1
For Each elemento As ListItem In ListBox1.Items
extra_arraylist.Add(elemento)
Next
' ...e li aggiungo a quelli selezionati nella seconda
For Each elemento1 As ListItem In temp_arraylist1
extra_arraylist.Add(elemento1)
Next
' e poi metto il totale degli elementi nella listbox1
ListBox1.DataSource = extra_arraylist
ListBox1.DataBind()
End If
End Sub
Se lo fai lato client legge i dati dell'ultimo bind...