lunes, 4 de agosto de 2008

Controles dinámicos en Visual Studio ASP .NET

Para generar un control de asp .Net hay que declarar el control como objeto global e instanciarlo en el evento Page_Init del *.aspx.cs asociado al *.aspx donde se quiere cargar los controles dinámicos, en este mismo evento de la página (cuyas instrucciones se ejecutan solo la primera vez que se entra a la misma), se asignarán los manejadores de evento. Un error común es instanciarlos en el evento Page_Load() creyendo que con condicionar la ejecución mediante el valor de PageBack será suficiente, pero esta forma de generar los controles no mantiene el estado ni los eventos asociados.



public partial class Ctrl : System.Web.UI.Page
{

TextBox tb1;

protected void Page_Init(object sender, EventArgs e)
{
tb1 = new TextBox();
tb1.ID = "txtTexto12";
PlaceHolder1.Controls.Add(tb1);

Button boton1 = new Button();
boton1.Click += new EventHandler(btnCalcula_Click);
PlaceHolder1.Controls.Add(boton1);

}

private void btnCalcula_Click(object sender, System.EventArgs e)
{
TextBox t = new TextBox();
tb1.Text = "20";
}
}


No hay comentarios: