Enlaces e información
Comenta lo que creas oportuno.
- Otros posts
- Hashtables con clave compleja
- Borrando en un GridView
Creando controles en tiempo de ejecución
Ayer me pegue con la creacion de controles en tiempo de ejecucion.
Basicamente lo que se hace es a?adir un control, por ejemplo un checkbox a un panel, durante la ejecucion del Code-Behind, por ejemplo en el Page_load:
obj.ID = “chkBox”
obj.Text = “Un checkbox en tiempo de ejecucion”
obj.AutoPostBack = True
‘ pnlPanel es un objeto Panel contenedor de controles que ya se a?adio en el dise?o.
pnlPanel.Controls.Add(obj)
A esto se le puede a?adir los eventos que creamos necesarios, como por ejemplo:
Para atender a los eventos lanzados por el control. Todo esto funciona muy bien. Solo me asaltaba una duda y es el como se gestionan estos controles entre recargas de paginas.
Lo que hay que tener en cuenta es que hay que diferenciar los datos o estado del control de la representacion grafica. Lo primero se mantiene persistente (gracias al ViewState) entre recargas de la pagina. Lo segundo no. Es por ello que independientemente del flag Page.IsPostBack tenemos que recrear los controles en tiempo de ejecucion. Lo bueno es que gracias al ViewState, no nos tenemos que preocupar del estado del checkbox.
Si nosotros en todas las recargas de la pagina (independientemente del PostBack) creamos el control, lo a?adimos al panel y le establecemos los datos iniciales (por ejemplo: obj.Checked = False del codigo anterior), posteriormente el ViewState se encarga de establecer el valor correcto del Checked, por ejemplo en el caso de que se haya hecho un Post de la pagina porque se ha marcado el checkbox: el nuevo estado sera: obj.Checked = True.
Ringraziamenti molto! Lo avete aiutato molto!