Llamadas dinámicas(callbacks) dentro de un asp:Repeater
Hay ocasiones en las que deseamos presentar un listado de elementos, utilizando un control Repeater y poder por ejemplo eliminar un elemento del listado, independiente del resto a través de su identificador. El siguiente texto explica como realizar esto.
La página a de implementar la interfaz IPostBackEventHandler
public partial class MiPaginaASPX : System.Web.UI.Page, IPostBackEventHandler {
Esta interfaz nos obliga a implementar el método RaisePostBackEvent, este será el que atienda las llamadas desde el cliente; recibe un parámetro en forma de cadena de texto (en este caso el identificador del registro).
public void RaisePostBackEvent(string eventArgument){
//lógica de negocio....
DatosManager.BorrarRegistro(eventArgument);
//lógica de negocio....
}
Finalmente para generar el código javascript que llame al evento RaisePostBackEvent de la página se ha de utilizar el método GetPostBackEventReference disponible dentro del ClientScript.
public string getRemoveImage(object obj) {
ShortView r = (ShortView)obj;
string evento = Page.ClientScript.GetPostBackEventReference(this, r.Id);
string res = "<a href=\"#\" onclick=\"" + evento + "\"><img src=\"/Resources/icons/borrar.png\" border=\"0\" /></a>";
return res;
}
La llamada al método getRemoveImage se realiza desde dentro del ItemTemplate:
....
<td><%# getRemoveImage(Container.DataItem)%></td>
......
No esta demás decir que esta es solo una de las posibles soluciones.
- FIN -
4:34
|
Etiquetas:
asp.net,
callback,
ClientScript,
ItemTemplate,
Repeater
|
This entry was posted on 4:34
and is filed under
asp.net
,
callback
,
ClientScript
,
ItemTemplate
,
Repeater
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
0 comentarios:
Publicar un comentario