Tendencias:
ASP NET AJAX

FileUpload dentro de UpdatePanel

12/03/2013
Número de visualizaciones

En este post deseo ayudar a los programadores C# que comienzan  a trabajar con AJAX.

ASP NET AJAXSabido es que ciertos controles no funcionan correctamente dentro de un UpdatePanel. Es el caso de los Treeview, Menú, Gridview o DetailsView entre otros. Algunos de estos no funcionan bajo determinadas circunstancias, o simplemente quedan totalmente invalidados. A este último grupo pertenece el control FileUpload (control que nos permite subir archivos al servidor). Este control queda totalmente invalidado y deja de funcionar correctamente.

Para solucionar el problema podemos encontrar varias soluciones, la mayoría enfocadas a la situación sencilla de que el control fileUpload esté situado directamente dentro del update panel. En este caso basta con agregar a la lista de triggers del UpdatePanel un nuevo PostBackTrigger con el ControlId apuntando al botón de subir archivo de nuestro FileUpload.

El problema de esta solución viene cuando la arquitectura se complica y tenemos, por ejemplo, el fileUpload dentro de un control de usuario propio, que a su vez será utilizado en páginas con varias MasterPage anidadas y el UpdateManager se encuentra en la primera de dichas MasterPages.

Está claro que no podemos referirnos directamente desde el ASCX al UpdateManager (de forma sencilla, se entiende) ni viceversa. En este caso la solución sería tan simple como crear el PostBackTrigger referido a nuestro botón desde código, para lo cual necesitamos obtener el ScriptManager que se está utilizando en la página actual. El siguiente código muestra cómo hacerlo:

protected void Page_Load(object sender, EventArgs e)
{
   ScriptManager scripManager = ScriptManager.GetCurrent(this.Page);
   scripManager.RegisterPostBackControl(lnkNuevaImagen);
}
0
Categorizado en: Informática y TICS

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Descubre nuestro contenido más actualizado en TERRITORIO INESEM

PRÓXIMOS EVENTOS

La Importancia de la Marca a la Hora de Comunicarnos

La Importancia de la Marca a la Hora de Comunicarnos

Carlos Gutiérrez Horno
1 hora
25/03/2024 17:00
Universidades colaboradoras
La universidad Antonio de Nebrija es Universidad colaboradora con INESEM Business School La universidad a Distancia de Madrid es Universidad colaboradora con INESEM Business School