Inicio > .NET, AJAX, ASP.NET, Visual Studio 2005, Visual Studio 2008, Visual Studio 2010 > Control FileUpload dentro de un UpdatePanel

Control FileUpload dentro de un UpdatePanel

Pues para empezar, según Microsoft, el control FileUpload no es compatible con AJAX y el UpdatePanel. Para hacer que funcione, es necesario que tengamos un PostBack.

Entonces deberíamos tener algo asi:

  1. <Triggers>
  2.     <asp:PostBackTrigger ControlID=”cmdGuardar” />
  3. </Triggers>

 

Con esto, se forzara a que en el evento del botón que realizaría la carga del archivo mediante el FielUpload, haga un PostBack. Quitando la parte asíncrona de AJAX.

Y según esto “Microsoft”, todo queda resuelto, pero nop. los dolores de cabeza no hacen mas que empezar.

Al tenerlo así, en algún momento se subirá el archivo, pero no al primer intento, por desgracia, ya que al presionar el botón, el FileUpload viene vacío.

he estado buscando documentación de por que hace esto, pero no he tenido suerte para documentar el problema, pero lo que si tengo es una solución a este problema.

Habrá que agregar un poquito de codigo al botón el lado del cliente:

  1. OnClientClick=”javascript:document.forms[0].encoding = ‘multipart/form-data’;”

 

o en ultimo de los casos se puede dejar el tag form de la siguiente manera:

  1. <form id=”form1″ runat=”server” enctype=”multipart/form-data”>

 

Con esto se le esta diciendo al request que esta compuesto de dos partes, uno que el request como tal, y por otro lado el archivo, y por lo que he descubierto, en el foro de asp.net dicen que es necesario si se van a estar subiendo archivos al servidor con la página.

Por ultimo dejo otro link con otra alternativa, y solo menciono que esa no la he utilizado: The Code Project

Suerte y espero que les sea de utilidad.

  1. lenny arias camacho
    30 noviembre, 2012 a las 21:23

    Hola, tu opción es interesante, sin embargo sería bueno que documentes en donde colocar cada línea de código, pues solo dejas las líneas exactas, pero no donde registrar.as

    Saludos.

  2. dv
    14 agosto, 2013 a las 19:51

    excelente

  3. a61920
    21 noviembre, 2013 a las 18:15

    (y) Gracias

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: