2010-12-11 16 views
9

Sto cercando di caricare più di un'immagine, e quando ogni caricamento lo mostrerò in un ripetitore, ma nel codice dietro FileUpload1.HasFile è sempre False, questo è un pezzo di il mio codice:<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" /> 

risposta

3

Un altro modo ingannevole è a Cr mangia iframe con fileupload + invia pulsante (o qualche trigger) all'interno del tuo modulo principale. iframe effettuerà il postback senza alcun effetto sulla pagina principale.

8

il controllo FileUpload non funziona con UpdatePanel, sarà necessario fare un post pieno di nuovo per ottenere il file sul server ... Ora ci sono un sacco di trucchi per renderlo ajaxy. ..

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

+2

+. Utilizzare invece AsyncFileUpload da MS Ajax Toolkit. http://www.asp.net/ajax/ajaxcontroltoolkit/samples/asyncfileupload/asyncfileupload.aspx – chapluck

+0

Assicurarsi di utilizzare la versione 40412 o successiva. Le versioni precedenti del toolkit supportano solo la modalità di sessione InProc: http://ajaxcontroltoolkit.codeplex.com/workitem/24854 –

+0

Il collegamento di Chapluck è interrotto. Questo funziona: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx – Tillito

Problemi correlati