2011-07-20 54 views
0

我開發自定義文件上傳器。Asp.net自定義ajax文件上傳器

<asp:FileUpload runat="server" ID="fuUpload" /> 

<asp:UpdatePanel runat="server" > 
    <ContentTemplate> 
    <asp:Button ID="btnUpload" runat="server" Text="Upload" CausesValidation="false" 
      OnClick="btnUpload_Click" /> 

     <div> 
     <asp:Label ID="lblError" runat="server" Visible="false" ForeColor="Red" /></div> 
     <asp:Repeater ID="rptAttachments" runat="server" OnItemCommand="Uploader_ItemCommand"> 
      <ItemTemplate> 
       <div> 
        <a href='<%#GetUrl(....) %>'><%#Eval("Filename") %></a> <b> 
        <asp:LinkButton ID="lnkDelete" runat="server" Text="Удалить" CommandName="DeleteAttachment" CommandArgument='<%#Eval("FileName") %>' /></b> 
       </div> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnUpload" EventName="Click" /> 
     <asp:AsyncPostBackTrigger ControlID="rptAttachments" EventName="ItemCommand" /> 
    </Triggers> 
</asp:UpdatePanel> 




protected void btnUpload_Click(object sender, EventArgs e) 
    {   
    //fuUpload.HasFile == false 
    if (fuUpload.HasFile && fuUpload.PostedFile != null 
     && fuUpload.PostedFile.ContentLength > 0) 
    { 
    } 
    } 

我不知道爲什麼總是fuUpload.HasFile equls null

+0

naveen的解決方案是好的。完整回發的原因是fileupload不適用於異步回發。 – rkw

回答

2

試試這些東西。

  1. <asp:FileUpload runat="server" ID="fuUpload" />UpdatePanel
  2. btnUpload觸發這個樣子。 <asp:PostBackTrigger ControlID="btnUpload" />
+0

它適用於回發!我可以在沒有回傳的情況下使用fileUpload嗎? – Alexandre

+2

有沒有簡單的方法來做到這一點。但你總是可以使用[jQuery Ajax上傳器插件](http://blog.stevensanderson.com/2008/11/24/jquery-ajax-uploader-plugin-with-progress-bar/) – naveen