Newsletter
Nome:
E-mail:

Artigos

| TI24x7 Cursos Online

Popular GridView e DropDownList via CodeBehind

04/04/2011

O ASP.NET nos oferece vários controles nativos que nos permite criar formulários sem digitar uma linha de código sequer!!! Mas dependendo do contexto, pode ser necessário criar um formulário via codebehind.

Ah! Você já se deparou com esta situação também!

Pois é, eu normalmente tenho situações deste tipo e com o tempo se aspannde como funcionam os controles ASP.NET. Alguns críticos dizem que não são muito bons os controles nativos, mas eu discordo com veemência, pois o que pode estar acontecendo é a falta de conhecimento em saber utilizar toda a capacidade dos controles nativos do ASP.NET. Eu já vi várias situações e inclusive já fui um crítico dos controles nativos do ASP.NET. Mas com o tempo e com estudos, cheguei à conclusão que o que me faltava era conhecimento em saber manipular os mesmos.

Ainda não sou expert em controles do ASP.NET mas já aspanndi alguns ?macetes? sobre como aplicar os recursos dos controles.

Neste artigo vou postar alguns exemplos de como trabalhar com alguns controles e classes nativas do ASP.NET sem utilizar os recursos como SqlDataSource e ObjectDataSource.

GridView

Inicialmente vamos criar algumas variáveis que nos auxiliarão nesta nobre tarefa:

String  sql =  null// Variável para utilizar as queries SQL.
SqlCommand  cmd =  null // Variável para executar o comando SQL.
SqlConnection  conn =  null // Variável para realizar a abertura e fechamento da conexão com o BD.
String  conexao =  ConfigurationManager .ConnectionStrings[ "ConnectionString" ].ConnectionString;  // String de conexão para acesso ao BD.


// Necessitamos utilizar as seguintes referências.
using  System.Data.SqlClient;
using  System.Configuration;

Agora vamos criar um método que irá popular a nossa GridView através do CodeBehind:

// Método
private   void  PopularGridView()
{
   conn =  new   SqlConnection (conexao);  // Instânciar a variável de conexão.
   conn.Open();  // Abre a conexão com o banco.
   sql =  string .Concat( " SELECT A, B FROM C " );  // Insere o comando SQL na variável.
   SqlDataAdapter da =  new   SqlDataAdapter ();  // Instânciar o DataAdapter para spanencher o DataTable.
  
da.SelectCommand =  new   SqlCommand (sql, conn);  // Define o comando do DataAdapter.
   DataTable  dt =  new   DataTable ();  // Instânciar o DataTable
   da.Fill(dt);
   grvExemplo.DataSource = dt;
   grvExemplo.DataBind();
   if  (conn !=  null ) conn.Close();
}

No ASPX vamos apenas inserir uma GridView e alterar a sua ID para grvExemplo.

<asp : GridView   ID = "grvExemplo"   runat = "server" >
</asp : GridView>

Esta vendo como é fácil de fazer!

No final vamos apenas chamar o método PopularGridView() no Page Load da página e executá- la. ***

Vóila!

Agora você tem um GridView populado pelo codebehind sem problemas. Mas ainda assim você me pergunta: - Como eu faço para paginar essa GridView agora???

Já sabendo que cedo ou tarde essa dúvida viria a tona, agora vou mostrar o jeito de paginar essa mesma GridView no codebehind de forma mais simples ainda!

Vejá só!

Vamos habilitar na nossa GridView a propriedade AllowPaging para TRUE e logo em seguida, vamos criar o evento PageIndexChanging e fazer o seguinte:

protected   void  grvExemplo_PageIndexChanging( object  sender,  GridViewPageEventArgs  e)
{
   grvExemplo.PageIndex = e.NewPageIndex;
   PopularGridView();
}

Alguma dificuldade? Simplesmente atualizaremos a propriedade da paginação inserindo o índice atual e logo em seguida, realizamos o DataBind da GridView através da chamada do método PopularGridView().

DropDownList

Agora, vamos popular um DropDownList utilizando apenas o codebehind de maneira muito simples. Inicialmente vamos inserir um controle DropDownList na nossa página e criar um método que fará o DataBind dessa DropDown. Vou utilizar as mesma variáveis de conexão já utilizadas para o GridView. ***

O método para popular a DropDownList ficará da seguinte maneira:

// Método
private   void  PopularDropDownList()
{
    conn =  new   SqlConnection (conexao);
    conn.Open();
    sql =  string .Concat( " SELECT A, B FROM C " );
    cmd =  new   SqlCommand (sql, conn);
    ddlExemplo.DataSource = cmd.ExecuteReader();
    ddlExemplo.DataTextField =  "A" ;
    ddlExemplo.DataValueField =  "B" ;
    ddlExemplo.DataBind();
    ddlExemplo.Items.Insert( 0 new   ListItem ( "Selecione algo..." "" ));
    if  (conn !=  null ) conn.Close();
}

Fácil também não é?

A única alteração que eu fiz nas propriedades desse controle, foi alterar o seu ID. Agora você pode chamar esse método em um Page load e ver o resultado ou ainda chamá-lo dentro de outros eventos ou métodos. Fica de acordo com a sua necessidade!

Bem, aqui temos o DataBind() pelo codebehind de dois controles muito utilizados no ASP.NET. Espero que faça bom proveito!

Por hora essas são as dicas da semana!

*** Eu não mostrei a fonte de dados e o SQL utilizado é fictício, se você apenas copiar e colar esse código, com certeza não vai funcionar. Para este exemplo eu presumo que você já possua um banco de dados populado e faça um SQL de acordo com a sua fonte para preencher os controles.



Colunista

Fabrizio Rodrigues

Graduado em Tecnologia, Análise e Desenvolvimento de Sistemas. Possui cursos Microsoft 2278/2192A, 4994A, 2956B, 2542A, 2543B, e 2544A. Trabalha com desenvolvimento de sistemas na linguagem C# e utiliza tecnologias como JavaScript, jQuery e SilverLight. Experiência em desenvolvimento de sistemas para governos na área da construção civil. Atualmente trabalha como Desenvolvedor WEB em um empresa na área de Segurança Digital Tributária.
© Copyright 2011 - Todos os direitos reservados. Proibida a reprodução parcial ou total do conteúdo deste site.
Como Funciona Formas de Pagamento Logo Ebit Compra Segura

TI 24x7 - O Maior portal de cursos online especializado em TI do Brasil