ASP.NET - Usando ArrayList
O objeto ArrayList é uma coleção de itens contendo um valor único.
Para incluir itens em um arraylist você usa do método Add(). Assim para criar um Arraylist chamado times e incluir 4 times o código usado é o seguinte:
script
runat="server"> Sub Page_Load if Not Page.IsPostBack then dim times=New ArrayList times.Add("Santos") times.Add("São Paulo") times.Add("Palmeiras") times.Add("Vasco") end if end sub </script> |
O número de entradas padrão de um ArrayList é 16. Para dimensionar um ArrayList até o seu final usamos o método TrimToSize().
script runat="server"> Sub Page_Load if Not Page.IsPostBack then dim times=New ArrayList times.Add("Santos") times.Add("São Paulo") times.Add("Palmeiras") times.Add("Vasco") times.TrimToSize() end if end sub </script> |
Podemos também fazer a ordenação alfabética ou numérica usando o método Sort():
script runat="server"> Sub Page_Load if Not Page.IsPostBack then dim times=New ArrayList times.Add("Santos") times.Add("São Paulo") times.Add("Palmeiras") times.Add("Vasco") times.TrimToSize() times.Sort() end if end sub </script> |
Para inverter a ordem temos o método Reverse() que deve ser usado após aplicar o método Sort():
script runat="server"> Sub Page_Load if Not Page.IsPostBack then dim times=New ArrayList times.Add("Santos") times.Add("São Paulo") times.Add("Palmeiras") times.Add("Vasco") times.TrimToSize() times.Reverse() end if end sub </script> |
O objeto ArrayList pode gerar de forma automática o texto e os valores para os controles:
Vejamos um exemplo onde temos um ArrayList vinculado ao um controle ListBox:
Veja o exemplo funcionando aqui => ArrayList
A figura abaixo mostra a ordenação de um ArrayList e a posterior inclusão de um item que é exibido no controle ListBox:
O código é bem simples.
1- Primeiro declaramos os controles usados no arquivo arraylist.aspx conforme o código abaixo:
<html> <head> <title>Usando ArrayList</title> </head> <body> <form id="form1" runat="server"> <asp:ListBox id="lb1" runat="server" Width="120px" Height="127px"></asp:ListBox> <br /> <asp:Button id="button2" onclick="IncluiItem" runat="server" Text="Inclui Item"></asp:Button> <asp:TextBox id="text1" runat="server"></asp:TextBox> <p> <asp:Button id="button1" onclick="Ordena" runat="server" Text="Ordena ASC"></asp:Button> <asp:Button id="button3" onclick="OrdDesc" runat="server" Text="Ordena DESC"></asp:Button> </p> </form> </body> </html> |
2- A seguir o script define o código para as rotinas : Ordena e OrdDesc que serão disparadas quando o usuário clicar nos botões Ordena ASC e Ordena DESC e Incluir Item.
A vinculação é feita através da propriedade DataSource do controle ListBox que é definida para o ArrayList . O método DataBind() do controle ListBox vincula a fonte de dados ao mesmo.
<%@
Page Language="vb" %> <script runat="server"> Dim listaDeCompras as ArrayList Sub Page_Load(Source as Object, E as EventArgs) if not Page.IsPostBack then listaDeCompras=New Arraylist listaDeCompras.add("Ovos") listaDeCompras.add("Leite") listaDeCompras.add("Pão") listaDeCompras.add("Manteiga") listaDeCompras.add("Açucar") listaDeCompras.add("Chocolate") lb1.datasource=listaDeCompras lb1.databind Session("compras")=listaDeCompras end if End Sub Sub Ordena(Source as Object, E as EventArgs) Session("compras").sort lb1.datasource=Session("compras") lb1.databind End Sub Sub OrdDesc(Source as Object, E as EventArgs) Session("compras").sort Session("compras").reverse lb1.datasource=Session("compras") lb1.databind End Sub Sub IncluiItem(Source as Object, E as EventArgs) Dim strItem as string strItem=text1.text Session("compras").add(strItem) text1.text="" lb1.datasource=Session("compras") lb1.databind End Sub </script> |
Estou usando o objeto Session para armazenar o valor do ArrayList na sessão após a primeira carga da página (Page_Load) . Ele será recuperado para exibir os dados no controle ListBox.
Até o próximo artigo ASP.NET .
José Carlos Macoratti