martes, 12 de mayo de 2009
Saber que control ha provocado el Postback
En algunas ocasiones nos gustaria saber control ha provocado la recarga (postback) de la página para esto podemos hacerlo de dos formas dependiendo de si es una recarga parcial (ajax) o un postaback total de la pagina.
1.-Si es una recarga parcial de la pagina
//obtenemos la página actual
Page page = (HttpContext.Current.Handler as Page);
//mediante el Scriptmanager accedemos al control que ha hecho la recarga parcial de la misma
string ctrlname = ScriptManager.GetCurrent(page).AsyncPostBackSourceElementID;
Control control = page.FindControl(ctrlname);
2.-Si es una recarga total
ctrlname = page.Request.Params["__EVENTTARGET"];
Esto funciona conrrectamente con casi todos los controles pero No con Botones, esto es debido a que los botons cuando se pintan en html no llaman a la función __doPostBack de Javascript y por tanto __EVENTTARGET nunca va a tener valor, para conseguir esto os dejo un enlace en el que muestran como conseguirlo para todo tipo de controles. Es un articulo muy útil de Ryan Farely.
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario