Neste post vou mostrar como mover itens de um ListBox para outro. Este tipo de recurso é muito útil quando precisamos adicionar e/ou remover um ou mais itens associados a alguma informação.
ListBoxes e botões para mover os itens
Veja a seguir o código do formulário:
<form id="form1" runat="server">
<div>
<table>
<tr>
<td>Lista 1</td>
<td></td>
<td>Lista 2</td>
</tr>
<tr>
<td>
<asp:ListBox ID="ListBox1" runat="server" Height="100px" Width="85px" SelectionMode="Multiple">
<asp:ListItem>ASP.NET</asp:ListItem>
<asp:ListItem>VB.NET</asp:ListItem>
<asp:ListItem>C#</asp:ListItem>
</asp:ListBox>
</td>
<td width="5px">
<asp:Button ID="btnAdd" runat="server" Text=" > " OnClick="btnAdd_Click" ToolTip="Mover para direita" />
<asp:Button ID="btnRemove" runat="server" Text=" < " OnClick="btnRemove_Click" ToolTip="Mover para esquerda" />
</td>
<td>
<asp:ListBox ID="ListBox2" runat="server" Height="100px" Width="85px" SelectionMode="Multiple"></asp:ListBox>
</td>
</tr>
</table>
</div>
</form
Para mover os itens de um Listbox para outro precisamos implementar o evento "Click" dos botões "btnAdd" e "btnRemove".
Para mover os itens do ListBox1 para o ListBox2:
// Movendo itens do ListBox1 para o ListBox2 (esquerda para direita)
protected void btnAdd_Click(object sender, EventArgs e)
{
// Lê todos os itens do ListBox1
foreach (ListItem item in ListBox1.Items)
{
// Verifica se o item está selecionado
if (item.Selected)
{
// Remove a seleção do item
item.Selected = false;
// Adiciona o item ao ListBox2
ListBox2.Items.Add(item);
}
}
// Lê todos os itens do ListBox2
foreach (ListItem item in ListBox2.Items)
{
// Verifica se o ListBox1 contém o item
if (ListBox1.Items.Contains(item))
// Remove o item do ListBox1
ListBox1.Items.Remove(item);
}
}
Para mover os itens do ListBox2 para o ListBox1 faremos o inverso:
// Movendo itens do ListBox2 para o ListBox1 (direita para esquerda)
protected void btnRemove_Click(object sender, EventArgs e)
{
// Lê todos os itens do ListBox2
foreach (ListItem item in ListBox2.Items)
{
// Verifica se o item está selecionado
if (item.Selected)
{
// Remove a seleção do item
item.Selected = false;
// Adiciona o item ao ListBox1
ListBox1.Items.Add(item);
}
}
// Lê todos os itens do ListBox1
foreach (ListItem item in ListBox1.Items)
{
// Verifica se o ListBox2 contém o item
if (ListBox2.Items.Contains(item))
// Remove o item do ListBox2
ListBox2.Items.Remove(item);
}
}
Está pronto. Agora basta executar o projeto!
Espero que aproveitem esta dica. Bons códigos para todos!