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

Escrito por Roberto M. Oliva en Julio 28th, 2005

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:

Dim obj as New CheckBox
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:

AddHandler obj.CheckedChanged, AddressOf CheckedChanged_Function

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.



Escriba un comentario

Dediquele un momento a comentar lo que piensa. Esta permitido usar HTML básico para formatear el escrito.

Comentarios de los lectores

Ringraziamenti molto! Lo avete aiutato molto!

sto andando dire ai miei amici circa questo luogo - ? solo perfetto!

..was just passing by.. good work

the webmaster RULLLLES!!

could it be it? i was searching for information needed for such a long time. Thank you!

Aucuns doutes c’est une bonne page..

Ringraziamenti molto! Lo avete aiutato molto!

well done. i’am gonna return in some time for sure

The topic is quite curious, i must say

ein was fur netter Aufstellungsort. ich mag es yeah mich!

Good site! Interesting information.. )

Aucuns doutes c’est une bonne page..

Grand emplacement - le bon travail ! ! !

what a nice site. i like it, yeah, I do!)))