sexta-feira, 16 de agosto de 2013

Controle DropDownList - Banco de Dados e Manual

Hoje, vou explicar um pouco sobre o controle DropDownlist conhecido também como combo ou combox, ele é muito utilizado para listar informações de fácil seleção.

Vou explicar como preencher via Banco de Dados utilizando nosso exemplo das 3 Camadas com conexão. Também apenas adicionando alguns campos de forma manual.



Adicione o Controle DropDownList, o mesmo esta na aba Toolbox > Standard > DropDownList, segure e arreste para sua aplicação.

Propriedades alteradas:
Id = ddlNomes
Nossa pagina aspx ficará assim:
Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head runat="server">
    <title>Edgar Esteves - Artigos .NET</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
               <asp:Panel ID="Panel1" runat="server" Width="600px" Height="500px">
            <asp:Label ID="Label1" runat="server" Text="DropDownList com Acesso a Dados"
                Font-Bold="True" Font-Names="Batang" ForeColor="#0000CC"></asp:Label>
            <br />
            <br />
                <br />
                   <asp:DropDownList ID="ddlNomes" runat="server">
                   </asp:DropDownList>
        </asp:Panel>
    </div>
    </form>
</body>
</html>

Vamos carregar o DropDownList no Load da pagina. Conforme código abaixo

Default.aspx.cs

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Web.BLL;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // Instancia o DataSet
        DataSet ds = new DataSet();
        // Preenche o DataSet com as informações do Banco de Dados
        ds = new CamadaLogicaNegocio().ObtemUsuarios();
        // Carrega o DropDownList com o DataSet
        ddlNomes.DataSource = ds.Tables[0];
        //Informa o campo de exibição TextField
        ddlNomes.DataTextField = "NomeUsuario";
        //Informa o campo de valor da linha, como não temos id na tabela vou repetir o campo.
        ddlNomes.DataValueField = "NomeUsuario";
        ddlNomes.DataBind();
    }
}

Agora vamos carregar da forma manual, por tanto iremos adicionar outro dropdownlist na pagina, vou criar um loop para adicionar de 0 à 10 opções na listagem, porém vamos primeiro ao html, ficará desta forma:

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<head runat="server">
    <title>Edgar Esteves - Artigos .NET</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
               <asp:Panel ID="Panel1" runat="server" Width="600px" Height="500px">
            <asp:Label ID="Label1" runat="server" Text="DropDownList com Acesso a Dados"
                Font-Bold="True" Font-Names="Batang" ForeColor="#0000CC"></asp:Label>
            <br />
            <br />
            <br />
            <asp:DropDownList ID="ddlNomes" runat="server">
            </asp:DropDownList>
            <br />
            <br />
            <asp:Label ID="Label2" runat="server" Text="DropDownList com Manual"
                Font-Bold="True" Font-Names="Batang" ForeColor="#0000CC"></asp:Label>
            <br />
            <br />
            <br />
            <asp:DropDownList ID="ddlManual" runat="server">
            </asp:DropDownList>
                   &nbsp;<asp:Button ID="btnCarregar" runat="server" onclick="btnCarregar_Click"
                       Text="Carregar Drop" />
        </asp:Panel>
    </div>
    </form>
</body>
</html>

Default.aspx.cs

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Web.BLL;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // Instancia o DataSet
        DataSet ds = new DataSet();
        // Preenche o DataSet com as informações do Banco de Dados
        ds = new CamadaLogicaNegocio().ObtemUsuarios();
        // Carrega o DropDownList com o DataSet
        ddlNomes.DataSource = ds.Tables[0];
        //Informa o campo de exibição TextField
        ddlNomes.DataTextField = "NomeUsuario";
        //Informa o campo de valor da linha, como não temos id na tabela vou repetir o campo.
        ddlNomes.DataValueField = "NomeUsuario";
        ddlNomes.DataBind();
    }
    protected void btnCarregar_Click(object sender, EventArgs e)
    {
        for (int i = 0; i <= 10; i++)
        {
            ddlManual.Items.Add(new ListItem("Adicionando o item numero: " + i.ToString(), i.ToString()));
        }
      
    }
}

Você também poderá adicionar atravez de "N" possibilidades, importando de banco de dados / XML / um textbox entre outras opções. Fica a seu criterio e imaginação.

Lembre-se que antes de utilizar este artigo leia o de acesso a dados em 3 camadas, pois o projeto foi baseado nele.

VS 2008 - ASP.NET 3.5 - C#.

Opção para baixar o projeto:

0 comentários:

Postar um comentário