Como acceder a controles anidados en un Repeater de ASP.NET
[+] Hace poco estube desarrollando una aplicación ASP.NET y me dió por utulizar el control Repeater, y la intención de todas las aplicaciones Web es que sean lo más profesionales posible, en mi caso, agregué 3 LinkButton para los comandos de ABC (Altas, Bajas, Cambios)
Luego de eso, vino darle funcionalidad, ya que existen algunas consideraciones a tomar en cuenta y que forman parte de la profesionalidad del trabajo, como son:
1. Si un elemento ya ha sido creado, deshabilitar el Link "Crear".
2. Si ha sido Borrado (aplica la baja lógica), entonces cambiar el texto del Link (Borrar<->Recuperar).
Para ello, es necesario recuperar el control anidado al Item del control Template y para lograr eso, hay que declarar una variable del tipo del control a recuperar, en el caso del ejemplo, del tipo LinkButton.
Usando como base el argumento e del manejador del evento ItemDataBound del control Repeater, esto, para que se evalue cada elemento presentado en el Repeter
Codigo:
protected void rUsuarios_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
LinkButton _lbCrear = (LinkButton)e.Item.FindControl("lbCrearUsuario");
LinkButton _lbBorrar = (LinkButton )e.Item.FindControl("lbBorrarUsuario");
_lbCrear.Enabled = false;
_lbBorrar.Text = "Borrar";
}
Con eso, ya podemos acceder a cualquier control anindado en el ItemTemplate de un Repeater.
- Crear con ID= lbCrearUsuario
- Editar con ID = lbEditarUsuario
- Borrar con ID = lbBorrarUsuario
Luego de eso, vino darle funcionalidad, ya que existen algunas consideraciones a tomar en cuenta y que forman parte de la profesionalidad del trabajo, como son:
1. Si un elemento ya ha sido creado, deshabilitar el Link "Crear".
2. Si ha sido Borrado (aplica la baja lógica), entonces cambiar el texto del Link (Borrar<->Recuperar).
Para ello, es necesario recuperar el control anidado al Item del control Template y para lograr eso, hay que declarar una variable del tipo del control a recuperar, en el caso del ejemplo, del tipo LinkButton.
Usando como base el argumento e del manejador del evento ItemDataBound del control Repeater, esto, para que se evalue cada elemento presentado en el Repeter
Codigo:
protected void rUsuarios_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
LinkButton _lbCrear = (LinkButton)e.Item.FindControl("lbCrearUsuario");
LinkButton _lbBorrar = (LinkButton )e.Item.FindControl("lbBorrarUsuario");
_lbCrear.Enabled = false;
_lbBorrar.Text = "Borrar";
}
Con eso, ya podemos acceder a cualquier control anindado en el ItemTemplate de un Repeater.
Comentarios
Publicar un comentario