更新面板与文件上传

时间:2011-08-12 15:41:10

标签: c# asp.net ajax updatepanel scriptmanager

<asp:FileUpload runat="server" ID="uploadCertification" />
<asp:Button runat="server" ID="btntext" OnClick="btntext_Click" />

代码

uploadCertification.PostedFile.SaveAs(serverPathImage + "\\CertificationCompany\\as.td");

此代码工作正常,但

 <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
      <asp:UpdatePanel ID="UpdatePanel3" runat="server"><ContentTemplate>
     <asp:FileUpload runat="server" ID="uploadCertification" />
      <asp:Button runat="server" ID="btntext" OnClick="btntext_Click" />
</ContentTemplate></asp:UpdatePanel>

代码

 uploadCertification.PostedFile.SaveAs(serverPathImage + "\\CertificationCompany\\as.td");

此行说错误:对象引用未设置为对象的实例。

2 个答案:

答案 0 :(得分:3)

在UpdatePanel中查看使用PostBackTrigger:

PostBackTrigger

以上MSDN文章包含使用带有FileUpload控件的PostBackTrigger的代码清单。

您可以使用的其他方法是使用iframe方法(在其他答案中提到)或使用其中一个使用javascript和flash上​​传文件的第三方组件之一(查找链接到下面几个比较流行的那些)

Uploadify

SWFUpload

答案 1 :(得分:1)

不幸的是,UpdatePanel不能与某些控件一起使用,特别是FileUpload控件。我相信使用javascript上传文件存在问题。 看看这里http://msdn.microsoft.com/en-us/library/bb386454.aspx 为了更好的解释。

过去我在使用iframe执行上传的单独页面时解决了这个问题。 http://www.codeproject.com/KB/aspnet/FileUploadingWithLoading.aspx