Movendo Itens de um ListBox para Outro

Postado por Daniel Garcia às 22:55 TERÇA-FEIRA, 21 DE JULHO DE 2009

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=" &gt; " OnClick="btnAdd_Click" ToolTip="Mover para direita" />
                <asp:Button ID="btnRemove" runat="server" Text=" &lt; " 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! 

5.0 ponto(s). Avaliado por 2 pessoas

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

ASP.NET

Comentários

Comentar


(Vai mostrar seu Gravatar)  

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading



Sobre o Autor

Daniel Garcia - MCP, MCTS, MCPD
Meu nome é Daniel Garcia, venho atuando no mercado de tecnologia há mais de uma década. Durante esse tempo tive a oportunidade de trabalhar com diversas tecnologias, principalmente Microsoft. Conquistei os títulos: MCP, MCTS, MCDP e MCT. Desde então, venho contribuindo com toda a Comunidade, divulgando meu conhecimento das tecnologias Microsoft.