NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
ASP.NET - CURSO COMPLETO Autor: Júlio Battisti |
||
---|---|---|
Lição 121 - Capítulo 15 - Criação de listas dinâmicas | ||
Neste exemplo iremos construir um formulário com três controles do tipo DropDownList, conforme indicado a seguir: • ListaPaises: Este controle irá exibir uma lista dos países para os quais existem pedidos, a partir da tabela Pedidos do banco de dados NorthWind.mdb. • ListaCidades: Este controle irá exibir uma lista das cidades para os quais existem pedidos, a partir da tabela Pedidos do banco de dados NorthWind.mdb. Quando a página é carregada pela primeira vez, esta lista está vazia. Quando o usuário seleciona um país na lista de países, a página é recarregada e são exibidas as cidades para o país selecionado. • ListaPedidos: Este controle irá exibir uma lista dos pedidos para a cidade selecionada na lista de cidades. Quando a página é carregada pela primeira vez, esta lista está vazia. Quando o usuário seleciona um país, a página é recarregada e são exibidas as cidades para o país selecionado. A lista de pedidos continua vazia. Quando o usuário seleciona uma cidade, na lista de cidades, a página é recarregada e são exibidos os pedidos para a cidade selecionada. Quando o usuário seleciona um pedido na lista, são exibidas informações sobre o pedido. Para exibir as informações sobre o pedido, utilizamos diversos controles do tipo TextBox. Na Listagem 15.1 temos o código para o exemplo proposto. Após a listagem apresentaremos mais alguns comentários sobre o exemplo. Listagem 15.1 – Estrutura básica para a criação de um Web Service. <%@ Page Language="C#" Debug="true" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OleDb" %> <html> <script language="C#" runat="server"> // Declaro variáveis que serão globais para a página. OleDbDataAdapter MeuComando; String auxSQL1; String auxSQL2; String comandoSQL; DataSet ds = new DataSet(); OleDbConnection MinhaConexão; String DefineConexão= "PROVIDER=MICROSOFT.JET.OLEDB.4.0;" + "DATA SOURCE=c:\\meus documentos\\NorthWind.mdb"; protected void Page_Load(Object Src, EventArgs E ) { if (!Page.IsPostBack) { OcultaControles(); String auxSQL1; String auxSQL2; String comandoSQL; auxSQL1 = "Select PaísDeDestino From Pedidos"; auxSQL2 = " Group By PaísDeDestino Order By PaísDeDestino"; comandoSQL = auxSQL1+auxSQL2; MinhaConexão = new OleDbConnection(DefineConexão); MeuComando = new OleDbDataAdapter(comandoSQL, MinhaConexão); MeuComando.Fill(ds); DataView source = new DataView(ds.Tables[0]); ListaPaises.DataSource = source ; ListaPaises.DataBind(); ListaPaises.Items.Insert(0,""); } } void OcultaControles() { txtNúmeroDoPedido.Visible=false; txtCódigoDoCliente.Visible=false; txtDataDoPedido.Visible=false; txtFrete.Visible=false; txtNomeDoDestinatário.Visible=false; txtPaísDeDestino.Visible=false; txtCidadeDeDestino.Visible=false; } void PaísSelecionado(Object sender, EventArgs e) { if (ListaPaises.SelectedItem.Value!="") { OcultaControles(); auxSQL1 = "Select CidadeDeDestino From Pedidos Where PaísDeDestino='"; auxSQL2 = ListaPaises.SelectedItem.Value + "' Group By CidadeDeDestino Order By CidadeDeDestino"; comandoSQL = auxSQL1+auxSQL2; MinhaConexão = new OleDbConnection(DefineConexão); MeuComando = new OleDbDataAdapter(comandoSQL, MinhaConexão); MeuComando.Fill(ds); DataView source = new DataView(ds.Tables[0]); ListaCidades.DataSource=source; ListaCidades.DataBind(); ListaCidades.Items.Insert(0,""); ListaPedidos.SelectedIndex=0; } } void CidadeSelecionada(Object sender, EventArgs e) { if (ListaCidades.SelectedItem.Value!="") { OcultaControles(); auxSQL1 = "Select * From Pedidos Where CidadeDeDestino='"; auxSQL2 = ListaCidades.SelectedItem.Value + "' Order By NúmeroDoPedido"; comandoSQL = auxSQL1+auxSQL2; MinhaConexão = new OleDbConnection(DefineConexão); MeuComando = new OleDbDataAdapter(comandoSQL, MinhaConexão); MeuComando.Fill(ds); DataView source = new DataView(ds.Tables[0]); ListaPedidos.DataSource=source; ListaPedidos.DataBind(); ListaPedidos.Items.Insert(0,""); } } void PedidoSelecionado(Object sender, EventArgs e) { if (ListaCidades.SelectedItem.Value!="") { auxSQL1 = "Select * From Pedidos Where NúmeroDoPedido="; auxSQL2 = ListaPedidos.SelectedItem.Value + " Order By NúmeroDoPedido"; comandoSQL = auxSQL1+auxSQL2; MinhaConexão = new OleDbConnection(DefineConexão); MeuComando = new OleDbDataAdapter(comandoSQL, MinhaConexão); MeuComando.Fill(ds); DataView source = new DataView(ds.Tables[0]); DataTable Pedidos = ds.Tables[0]; DataRow Linha = Pedidos.Rows[0]; txtNúmeroDoPedido.Visible=true; txtCódigoDoCliente.Visible=true; txtDataDoPedido.Visible=true; txtFrete.Visible=true; txtNomeDoDestinatário.Visible=true; txtPaísDeDestino.Visible=true; txtCidadeDeDestino.Visible=true; txtNúmeroDoPedido.Text = Linha["NúmeroDoPedido"].ToString(); txtCódigoDoCliente.Text = Linha["CódigoDoCliente"].ToString(); txtDataDoPedido.Text = Linha["DataDoPedido"].ToString(); txtFrete.Text = Linha["Frete"].ToString(); txtNomeDoDestinatário.Text = Linha["NomeDoDestinatário"].ToString(); txtPaísDeDestino.Text = Linha["PaísDeDestino"].ToString(); txtCidadeDeDestino.Text = Linha["CidadeDeDestino"].ToString(); } } </script> <body> <h3> <font face="Verdana"> Selecione um País na lista de países. <BR> Em seguida uma cidade na lista de cidades. <BR> E por último, um pedido na lista de Pedidos. </font> </h3> <HR> <form runat=server> <div align="left"> <table border="0"> <tr> <td> <p align="right"> <B>Selecione um País ->></B> </td> <td> <asp:DropDownList id="ListaPaises" runat="server" BackColor="#c0c0c0" Font-Bold="True" DataTextField = "PaísDeDestino" DataValueField = "PaísDeDestino" AutoPostBack = "True" onSelectedIndexChanged = "PaísSelecionado" > </asp:DropDownList> </td> </tr> <tr> <td> <p align="right"> <B>Selecione uma Cidade ->></B> </td> <td> <asp:DropDownList id="ListaCidades" runat="server" BackColor="#c0c0c0" Font-Bold="True" DataTextField = "CidadeDeDestino" DataValueField = "CidadeDeDestino" AutoPostBack = "True" onSelectedIndexChanged = "CidadeSelecionada" > </asp:DropDownList> </td> </tr> <tr> <td> <p align="right"> <B>Selecione um Pedido ->></B> </td> <td> <asp:DropDownList id="ListaPedidos" runat="server" BackColor="#c0c0c0" Font-Bold="True" DataTextField = "NúmeroDoPedido" DataValueField = "NúmeroDoPedido" AutoPostBack = "True" onSelectedIndexChanged = "PedidoSelecionado" > </asp:DropDownList> </td> </tr> <tr> <td> <p align="right"> <B>Número do Pedido:</B> </td> <td> <asp:TextBox runat=server id="txtNúmeroDoPedido" Text="" TextMode="SingleLine" Font_Face="Arial" Font_Size="3" Height="20" Width="200" Enabled="False" /> </td> </tr> <tr> <td> <p align="right"> <B>Código do Cliente:</B> </td> <td> <asp:TextBox runat=server id="txtCódigoDoCliente" Text="" TextMode="SingleLine" Font_Face="Arial" Font_Size="3" Height="20" Width="200" Enabled="False" /> </td> </tr> <tr> <td> <p align="right"> <B>Data do Pedido:</B> </td> <td> <asp:TextBox runat=server id="txtDataDoPedido" Text="" TextMode="SingleLine" Font_Face="Arial" Font_Size="3" Height="20" Width="200" Enabled="False" /> </td> </tr> <tr> <td> <p align="right"> <B>Frete:</B> </td> <td> <asp:TextBox runat=server id="txtFrete" Text="" TextMode="SingleLine" Font_Face="Arial" Font_Size="3" Height="20" Width="200" Enabled="False" /> </td> </tr> <tr> <td> <p align="right"> <B>Nome do Destinatário:</B> </td> <td> <asp:TextBox runat=server id="txtNomeDoDestinatário" Text="" TextMode="SingleLine" Font_Face="Arial" Font_Size="3" Height="20" Width="200" Enabled="False" /> </td> </tr> <tr> <td> <p align="right"> <B>País de Destino:</B> </td> <td> <asp:TextBox runat=server id="txtPaísDeDestino" Text="" TextMode="SingleLine" Font_Face="Arial" Font_Size="3" Height="20" Width="200" Enabled="False" /> </td> </tr> <tr> <td> <p align="right"> <B>Cidade de Destino:</B> </td> <td> <asp:TextBox runat=server id="txtCidadeDeDestino" Text="" TextMode="SingleLine" Font_Face="Arial" Font_Size="3" Height="20" Width="200" Enabled="False" /> </td> </tr> </table> </div> </form> </body> </html> Digite o código da Listagem 15.1 e salve o mesmo em um arquivo chamado chap15ex1.aspx, na pasta chap15, dentro da pasta wwwroot, conforme descrito no item: “Check List para acompanhar os exemplos deste livro”, no Capítulo 6. Para acessar esta página utilize o seguinte endereço: http://localhost/chap12/chap15ex1.aspx Ao carregar a página você obtém o resultado indicado na Figura 15.1. Inicialmente apenas a lista de países está preenchida, conforme destacado na Figura 15.1.
Este lista é preenchida com o auxílio do evento Page_Load, onde estabelecemos uma conexão com o banco de dados NorthWind.mdb e retornamos a lista de países da tabela Pedidos. Por último adicionamos um elemento em branco (“ “), como primeiro elemento da lista de Países. Este elemento é adicionado para que nenhum país esteja selecionada por padrão, ou seja, o usuário deve abrir a lista e selecionar um país: ListaPaises.Items.Insert(0,""); Na lista de páises selecione Brasil. Ao selecionar um país na lista, será disparado o evento onSelectedIndexChanged, do controle ListaPaises. Em resposta a este evento, configuramos o procedimento “PaísSelecionado”: onSelectedIndexChanged = "PaísSelecionado" O procedimento PaísSelecionado faz uma conexão com o banco de dados NorthWind.mdb e retorna apenas as cidades para o país selecionado. Os dados retornados são atribuídos ao congrole ListaCidades, através do uso da propriedade DataSource e do método DataBind. Por último adicionamos um elemento em branco (“ “), como primeiro elemento da lista de cidades. Este elemento é adicionado para que nenhuma cidade seja selecionada por padrão, ou seja, o usuário deve abrir a lista e selecionar uma cidade. Abra a lista de cidades e selecione São Paulo, conforme indicado na Figura 15.2.
Ao selecionar uma cidade na lista de cidades, será disparado o evento onSelectedIndexChanged, do controle ListaCidades. Em resposta a este evento, configuramos o procedimento “CidadeSelecionada”: onSelectedIndexChanged = "CidadeSelecionada" O procedimento CidadeSelecionada faz uma conexão com o banco de dados NorthWind.mdb e retorna apenas os pedidos para a cidade selecionada. Os dados retornados são exibidos nos respectivos controles TextBox da página. O procedimento CidadeSelecionada também torna a propriedade Visible, dos controles TextBox, igual a True, de tal forma que estes controles sejam exibidos na página. Selecione o pedido número: 10494, os dados para o pedido selecionado serão exibidos, conforme indicado na Figura 15.3.
Se você selecionar uma outra cidade, os controles TextBox são ocultados e a lista de pedidos será redefinida para que sejam exibidos os pedidos para a cidade selecionada. Isto é feito pelo procedimento CidadeSelecionada, o qual é disparado toda vez que uma nova cidade for selecionada. Se você selecionar um novo país, a lista de cidades será redefinida para exibir as cidades do país selecionado e o controle ListaPedidos será desabilitado. Quando você seleciona uma cidade, na lista de cidades, o controle ListaPedidos é habilitado e passa a exibir os pedidos para a cidade selecionada. Neste exemplo vimos algumas técnicas interessantes, as quais possibilitam a criação de formulários para pesquisas com um ou mais critérios. O grande “segredo” deste exemplo, é a correta utilização da propriedade onSelectedIndexChanged, do controle DropDownList. |
||
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2024 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI