Asp.net自定义ajax文件上载程序

Asp.net自定义ajax文件上载程序,asp.net,ajax,updatepanel,Asp.net,Ajax,Updatepanel,我开发了自定义文件上传程序 <asp:FileUpload runat="server" ID="fuUpload" /> <asp:UpdatePanel runat="server" > <ContentTemplate> <asp:Button ID="btnUpload" runat="server" Text="Upload" CausesValidation="false" OnClick="bt

我开发了自定义文件上传程序

<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)
     { 
     }
  }

受保护的void btnUpload\u单击(对象发送方,事件参数e)
{          
//fuUpload.HasFile==false
如果(fuUpload.HasFile&&fuUpload.PostedFile!=null
&&fuUpload.PostedFile.ContentLength>0)
{ 
}
}
我想知道为什么
fuUpload.HasFile
总是等于
null

试试这些东西

  • 放入
  • 像这样设置
    btnUpload
    触发器<代码>

  • 纳文的解决方案很好。完全回发的原因是文件上载不适用于异步回发。它适用于回发!我可以不用回发就使用fileUpload吗?没有简单的方法可以做到这一点。但是你总是可以用类似的东西