ASP .NET - DropDownList :  Múltiplas Colunas e Seleção com jQuery(CDN)


 Neste artigo eu vou mostrar como podemos exibir mais de um valor em um controle dropdownlist e obter o valor selecionado usando jQuery com a distribuição CDN.

O controle DropDownList é um controle de lista muito versátil e simples para exibir uma lista de opções ao usuário.

Para recordar, abaixo relacionei novamente as propriedades de um controle DropDownList :

 

- AutoPostBack - Se for True causa um envio (post) do formulário quando o cliente altera o item selecionado.

- DataSource - Referencia a fonte de dados que o controle usa para preencher os itens.

- DataTextField - É usado para preencher o campo Text dos itens.

- DataValueField - Usado para preencher o campo Value dos itens.

- Items - Coleção de objetos ListItem onde cada objeto representa um item.

- SelectedItem - Uma referência o item selecionado.

- SelectedIndex - Informa o índice do item selecionado. O primeiro tem índice igual a zero.

 

Evento de um DropDownList : OnSelectedIndexChanged - Iniciado quando o controle tem a propriedade AutoPostBack igual a True e ocorre mudança no item selecionado.

A jQuery é a biblioteca JavaScript mais usada em aplicações web atualmente. Ela foi desenvolvida em 2006 por John Resig e é suportada por uma comunidade de desenvolvedores além do time do projeto jQuery. Ela foi construída para ser leve, poder ser usadas nos principais navegadores e ser compatível com a especificação CSS3.

A jQuery simplifica a maneira de como acessar os elementos DOM tornando mais fácil a navegação pelas páginas. Para usar jQuery você pode :

No exemplo do artigo eu vou usar a distribuição CDN do Google que tem a seguinte sintaxe :

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

Recursos usados:

Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.

Criando o projeto no VS Community

Abra o VS Community 2015 e clique em New Project;

Selecione a linguagem Visual Basic ou Visual C# e o template ASP .NET Web Application;

Informe o nome DropDownList_MultiplasColunas ou outro de sua preferência e clique no botão OK;

A  seguir selecione o template Empty e marque a opção Web Forms pois vamos criar um projeto vazio :

A seguir no menu Project clique em Add New Item e selecione o template Web Form informando o nome Default.aspx. Assim incluímos uma página em nosso projeto.

Para obter a Jquery podemos usar o Nuget para incluir as referências às biblioteca jQuery.

Isso é feito no menu TOOLS e em Nuget Package Manager e selecione Manage Nuget Package for Solutions.

Na janela do assistente selecione a guia Online e informe jQuery para localizar o pacote;

Selecione o pacote jQuery e clique no botão Install para instalar a biblioteca no projeto:

No nosso exemplo, não vamos seguir esse caminho, vamos usar a distribuição CDN que é referenciada diretamente na página ASP .NET.

Abra a página Default.aspx no modo Source inclua a referências na seção <head> para a biblioteca JQuery usando a CDN do Google.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DropDownList_MultiplasColunas.Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>DropDwonList - Multiplas Colunas/ Seleção com jQuery(CDN)</title>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

    <script type="text/javascript">
        function getValorSelecionado() {
            alert($("#ddl").val());
         }
        function getTextoSelecionado() {
             alert($("#ddl option:selected").text());
         }
    </script>

</head>
<body>
    <h2>Macoratti .net - DropDownList com Múltiplas Colunas/Seleção com jQuery(CDN)</h2>
    <hr />
    <form id="form1" runat="server">
    <div>
     Selecione uma opção : <asp:DropDownList ID="ddl" runat="server" Height="27px" Width="245px" />
    </div>
    <p><asp:Button ID="btnValor" runat="server" Text="Obter o valor Selecionado" OnClientClick="return getValorSelecionado();" /></p>
    <p>
    <asp:Button ID="btnTexto" runat="server" Text="Obter o Texto Selecionado"  OnClientClick="return getTextoSelecionado();" />      
    </p>
    </form>
</body>
</html>

Na tag <head> definimos as funções jQuery getValorSelecionado e getTextoSelecionado para obter o valor selecionado a partir do controle DropDownList (ddl).

Agora vamos definir o código no arquivo code-behind Default.aspx.cs, usando o evento Load, para acessar a tabela Customers do banco de dados Northwind.mdf e obter o valores para exibir no dropdownlist.

using System;
using
System.Data.SqlClient;
       SqlConnection con = null;
        protected void Page_Load(object sender, EventArgs e)
        {
            try {
                string connectionString = @"Data Source=.\sqlexpress;Initial Catalog=Northwind;Integrated Security=True";
                con = new SqlConnection(connectionString);
                SqlCommand cmd = new SqlCommand("Select CustomerID, PostalCode  + ' - ' + City as pCep from Customers", con);
                con.Open();
                SqlDataReader rd;
                rd = cmd.ExecuteReader();
                ddl.DataSource = rd;
                ddl.DataMember = "CusrtomerID";
                ddl.DataValueField = "pCep";
                ddl.DataBind();
            }
            catch(Exception ex)
            {
                throw ex;
            }
            finally
            {
                con.Close();
            }
        }

O pulo do gato para exibir mais de um valor no controle dropdownlist é montar a instrução SQL concatenando os campos com os valores que desejamos exibir.

No exemplo fizermos isso para as colunas PostalCode e City definindo o aliás pCep para este valor.

 Select CustomerID, PostalCode  + ' - ' + City as pCep from Customers

Depois atribuímos o valor à propriedade DataValueField: ddl.DataValueField = "pCep";

Executando o projeto iremos obter:

Pegue o projeto completo aqui:  DropDownList_MultiplasColunas.zip

Porque do céu se manifesta a ira de Deus sobre toda a impiedade e injustiça dos homens, que detêm a verdade em injustiça.
Porquanto o que de Deus se pode conhecer neles se manifesta, porque Deus lho manifestou.
Porque as suas coisas invisíveis, desde a criação do mundo, tanto o seu eterno poder, como a sua divindade, se entendem, e claramente se vêem pelas coisas que estão criadas, para que eles fiquem inescusáveis;

Romanos 1:18-20

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti