2010-12-11 21 views
9

Im essayant tp télécharger plus d'une image, et quand chacun je télécharger je vais le montrer dans un répéteur, mais dans le code derrière le FileUpload1.HasFile est toujours False, ceci est un morceau de mon code:<asp: FileUpload avec 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" /> 

Répondre

3

Une autre façon délicate est de cr eate iframe avec fileupload + bouton submit (ou un trigger) dans votre formulaire principal. iframe sera postback sans effet sur la page principale.

8

le contrôle FileUpload ne fonctionne pas avec UpdatePanel, vous devez faire un poste arrière pour obtenir le fichier sur le serveur ... maintenant, il y a beaucoup de trucs pour faire ajaxy. ..

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

+2

+. Utilisez plutôt AsyncFileUpload de MS Ajax Toolkit. http://www.asp.net/ajax/ajaxcontroltoolkit/samples/asyncfileupload/asyncfileupload.aspx – chapluck

+0

Veuillez vous assurer d'utiliser la version 40412 ou plus récente. Les anciennes versions de la boîte à outils ne prennent en charge que le mode de session InProc: http://ajaxcontroltoolkit.codeplex.com/workitem/24854 –

+0

Le lien de Chapluck est rompu. Celui-ci fonctionne: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx – Tillito