2010-12-11 30 views
9

Im cố gắng tp tải lên nhiều hơn một hình ảnh, và khi mỗi một tôi tải lên, tôi sẽ hiển thị nó trong một bộ lặp, nhưng trong mã phía sau FileUpload1.HasFile luôn luôn là False, đây là một phần của mã của tôi:<asp: FileUpload với 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" /> 

Trả lời

3

Một cách khó khăn khác là cr ăn iframe với tệp tải lên + nút gửi (hoặc một số trình kích hoạt) bên trong biểu mẫu chính của bạn. iframe sẽ postback không ảnh hưởng đến trang chính.

8

việc kiểm soát FileUpload không làm việc với UpdatePanel, bạn sẽ cần phải làm một bài đầy đủ trở lại để có được các tập tin trên máy chủ ... Bây giờ có rất nhiều thủ đoạn để làm cho nó ajaxy. ..

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

+2

+. Sử dụng AsyncFileUpload từ MS Ajax Toolkit để thay thế. http://www.asp.net/ajax/ajaxcontroltoolkit/samples/asyncfileupload/asyncfileupload.aspx – chapluck

+0

Hãy chắc chắn sử dụng phiên bản 40412 hoặc mới hơn. Các phiên bản cũ của bộ công cụ chỉ hỗ trợ chế độ phiên InProc: http://ajaxcontroltoolkit.codeplex.com/workitem/24854 –

+0

Liên kết của Chapluck bị hỏng. Công cụ này hoạt động: http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx – Tillito

Các vấn đề liên quan