Como criar controles dinamicamente no ASP.Net
publicado por Agnaldo em www.50minutos.com.br em 24/03/2008
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>");
}
}