Objetos persistentes y controles dinámicos

Anuncio
Controles Dinámicos
Objetos Persistentes
Objetos persistentes
●
Mantener un objeto entre postbacks
●
Utilidad ViewState
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE">
●
Guardar
elAlumno = new ClaseAlumno { Nombre = "Pepe", Apellidos = "García López" };
ViewState["elAlumno"] = elAlumno;
●
Leer
elAlumno = (ClaseAlumno) ViewState["elAlumno"];
Objetos persistentes
●
Convertir un objeto en texto: Serialización
[Serializable]
public class ClaseAlumno {
private int _nombre;
private ClaseExpediente _expediente;
...
[Serializable]
public class ClaseExpediente {
int _codigoEstudio;
...
Objetos persistentes
●
Variables de sesión y aplicación
laAlumna = new ClaseAlumno {
Nombre="Laura",
Apellidos="Gómez"
};
Session["laAlumna"] = laAlumna;
laAlumna = (ClaseAlumno)Session["laAlumna"];
Objetos persistentes
●
Cambiar el almacenamiento del estado
protected override PageStatePersister PageStatePersister
{
get
{
return new SessionPageStatePersister(this);
}
}
Controles dinámicos
●
Generar controles “al vuelo”
Control miControl = new Control();
miControl.Propiedad = "Valor";
Contenedor.Controls.Add(miControl);
Controles dinámicos
●
Propiedades
●
●
●
●
●
●
AutoPostBack
●
Page
ClientID
●
Parent
CssClass
●
ReadOnly
Enabled
●
SkinID
EnableViewState
●
Text
ID
●
Visible
Controles dinámicos
●
Panel
Panel Datos = new Panel();
Datos.ID = "DatosAlumno";
Datos.CssClass = "panelDatos";
Contenedor.Controls.Add(Datos);
●
Caja de texto
TextBox textBoxTitulo = new TextBox();
textBoxTitulo.ID = "TextBoxTitulo";
textBoxTitulo.Text = "Pon el titulo";
Datos.Controls.Add(textBoxTitulo);
Controles dinámicos
●
Etiquetas
Label titulo = new Label();
titulo.Text = "Titulo";
titulo.AssociatedControlID = "TextBoxTitulo";
Datos.Controls.Add(titulo);
●
Botones
Button botonAceptar = new Button();
botonAceptar.Text = "Aceptar";
botonAceptar.CausesValidation = false;
Datos.Controls.Add(botonAceptar);
Controles dinámicos
●
Eventos
botonAceptar.Click += new EventHandler(botonAceptar_Click);
void botonAceptar_Click(object sender, EventArgs e)
{
// Gestionar evento
}
Controles dinámicos
●
Recorrer controles de una Pagina/Control
Datos.HasControls()
foreach (Control elControl in Datos.Controls) {
Label1.Text +="<br />Control: " + elControl.ID;
}
●
Encontrar un control
elTextBox = (TextBox) Page.FindControl("TBoxTitulo");
Descargar