2010-12-11 16 views
9

Im tratando de subir más de una imagen, y cuando cada una que subo, la mostraré en un repetidor, pero en el código detrás de FileUpload1.HasFile siempre es falso, esta es una pieza de mi código:<asp: FileUpload con UpdatePanel

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="true"               UpdateMode="Conditional" > 
    <ContentTemplate> 
    <asp:Repeater ID="rpUploadedImages" runat="server"> 
     <ItemTemplate> 
     <img src='../Images/<%# DataBinder.Eval(Container.DataItem, "ImagePath")%>'/><br /> 
     </ItemTemplate> 
    </asp:Repeater> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnupload" EventName="click" /> 
    </Triggers> 
</asp:UpdatePanel> 

<asp:FileUpload ID="FileUpload1" runat="server" /><br /> 
<asp:Button ID="btnupload" runat="server" Text="Upload" onclick="btnupload_Click" /> 

Respuesta

3

Otra forma es complicado a Cr eate iframe con el botón fileupload + submit (o algún disparador) dentro de tu formulario principal. iframe hará una devolución de datos sin efecto a la página principal.

8

el control FileUpload no funciona con UpdatePanel, tendrá que hacer un post completo de nuevo para obtener el archivo en el servidor ... Ahora hay una gran cantidad de trucos para que sea AJAXy. ..

http://geekswithblogs.net/ranganh/archive/2008/04/01/file-upload-in-updatepanel-asp.net-ajax.aspx

+2

+. Use AsyncFileUpload desde MS Ajax Toolkit en su lugar. http://www.asp.net/ajax/ajaxcontroltoolkit/samples/asyncfileupload/asyncfileupload.aspx – chapluck

+0

Asegúrese de utilizar la versión 40412 o posterior. Las versiones anteriores del kit de herramientas solo son compatibles con el modo de sesión InProc: http://ajaxcontroltoolkit.codeplex.com/workitem/24854 –

+0

El enlace de Chapluck está roto. Éste funciona: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx – Tillito