24 03 2008

Como criar controles dinamicamente no ASP.Net

Problema do aluno: Como crio, em ASP.Net 2005 controles dinamicos? E como eu posiciono os mesmos em um determinado ponto da página?

Solução: Criei um projeto chamado exemploCriacaoComponentes do tipo Web Application (web site).

Adicionei uma classe (no Solution Explorer cliquei com o botão direito do mouse sobre o projeto e, no menu de contexto, escolhi Add New Item). Dei o nome GeraComponentes e criei os métodos abaixo (estou colando todo o código para facilitar a leitura):

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

public class GeraComponentes
{
	public GeraComponentes()
	{
	}      

    /*
     * ESSE MÉTODO CRIA E POPULA O DROPDOWNLIST
     * DE SEXOS
     */
    public String CriaComboSexo(String id)
    {
        DropDownList ddl = new DropDownList();
        ddl.ID = id;
        ddl.Items.Add("Masculino");
        ddl.Items.Add("Feminino");      

        System.IO.StringWriter conteudoHTML =
            new System.IO.StringWriter(new System.Text.StringBuilder());      

        HtmlTextWriter htw = new HtmlTextWriter(conteudoHTML);
        ddl.RenderControl(htw);
        return conteudoHTML.ToString();
    }      

    /*
     * ESSE MÉTODO CRIA E POPULA UM DROPDOWNLIST
     * ASSOCIANDO O MESMO A UMA LISTA DE ELEMENTOS
     */
    public String CriaCombo(System.Collections.ArrayList lista, String id)
    {
        DropDownList ddl = new DropDownList();
        ddl.ID = id;
        ddl.DataSource = lista;
        ddl.DataBind();
        System.IO.StringWriter conteudoHTML =
            new System.IO.StringWriter(new System.Text.StringBuilder());
        HtmlTextWriter htw = new HtmlTextWriter(conteudoHTML);
        ddl.RenderControl(htw);
        return conteudoHTML.ToString();
    }
}

E, no método Form_Load, digitei o seguinte código (novamente estou colando todo o código):

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

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        GeraComponentes gc = new GeraComponentes();     

        Response.Write("<p>Sexo:");
        Response.Write(gc.CriaComboSexo("Sexo").ToString());
        Response.Write("</p>");     

        System.Collections.ArrayList lista = new System.Collections.ArrayList();
        lista.Add("ARROZ");
        lista.Add("FEIJÃO");
        lista.Add("BATATINHA");     

        Response.Write("<p>Comidas:");
        Response.Write(gc.CriaCombo(lista, "Comidas").ToString());
        Response.Write("</p>");     

        lista.Clear();     

        lista.Add("LIMA");
        lista.Add("LARANJA");
        lista.Add("LIMÃO");     

        Response.Write("<p>Frutas:");
        Response.Write(gc.CriaCombo(lista, "Frutas").ToString());
        Response.Write("</p>");
    }
}

5 Respostas para “Como criar controles dinamicamente no ASP.Net”

  • 1
    Inah Martins Escreveu:

    Oi professor, te nviei e-mail no Agnaldo@50minutos.com.br!!

    Sou uma aluna antiga da Impacta, mas spero que se lembre de mim!
    Abraços!

    Inah

  • 2
    Inah Martins Escreveu:

    Oi professor!

    Deixei recado aqui otem, mas acho que apagou….ou eu não deixei….tô tão maluca que nem sei mais….
    Profesor, ive aula om vc em outubro/novembro do ano passado e queria tirar duas duvidas com vc, tem algum e-mail que posso enviar? porque tentei enviar para agnaldo@50minutos.com.br mas voltou….sniffs

    Aguardo resposta!
    Obrigada!

    Inah

  • 3
    daniel soares Escreveu:

    Eai DIABONALDO…..firmeza….
    a galera te chama de professor….hehehhe AI é FOGOOOOO….
    fala pra eles que vc é INSTRUTOR pra quem nao sabe,,,,,

    ai deixei um recado no seu email e outra coisa….o seu telefone que eu tinha ja era….roubaram meu celular….

    abraçao, espero que vc responda…
    RITAAAA “essa nem professora e nem instrutura “PRO INFERNOOOOOOOOOOOOOOOOOO”

  • 4
    Inah Escreveu:

    Eu chamo ele de professor se quiser, porque ele não só me intruiu como me ensinou, então preocupe-se mais com o que VOCÊ escreve doque com oque EU escrvo.

    Obrigada

    E PROFESSOR, Obrigada por responder meu recado e meu e-mail vou te elogiar na Impacta!

  • 5
    André Luiz Escreveu:

    E como eu faço para recuperar os valores selecionados nas combos?

Comente