2012-07-17 99 views
1

我在尝试使用ASP.NET文件上传控件时遇到困难。 发生什么事是,当我从后面的代码调用文件上传控件时,我总是得到一个FileUploadControl.HasFile = false。 我已经进行了一些研究,并尝试了不同的方法无济于事。该控件正在用于以下场景: 该控件包含在一个div中,通过JQuery将其作为弹出对话框调用。与文件上传控件一起,有两个链接按钮将操作上述控件(从文件导入XML并进行操作)。ASP.NET文件上传控件问题

谢谢。

下面是我的代码示例。

<asp:scriptmanager id="ScriptManager1" runat="server"> 
    </asp:scriptmanager> 
<div style="text-align: center; margin-left: auto; margin-right: auto"> 
    <asp:fileupload id="FileUploadControl" runat="server" /> 
    <asp:updatepanel runat="server"> 
       <ContentTemplate>      
        &nbsp; 
        <asp:LinkButton ID="Append" runat="server" Text="Append" OnClick="Append_Click"></asp:LinkButton> 
        &nbsp; 
        <asp:LinkButton ID="Overwrite" runat="server" Text="Overwrite" OnClick="Overwrite_Click"></asp:LinkButton> 
       </ContentTemplate> 
       <Triggers> 
        <asp:PostBackTrigger ControlID="Append" /> 
        <asp:PostBackTrigger ControlID="Overwrite" /> 
       </Triggers> 
      </asp:updatepanel> 
</div> 
+1

Afaik文件上传不能使用AJAX脚本管理器的东西编写脚本。你将不得不寻找一个不同的解决方案。现在,Javascript上传文件的工作,但这不包括在当前的ASP.NET脚本管理器。你将不得不做一个完整的回发。这意味着您的页面将完全重新加载。 – sinni800 2012-07-17 14:06:06

+0

当你点击'UpdatePanel'中的一个按钮时,你是否期望文件被上传? – freefaller 2012-07-17 14:06:40

+0

freefaller,这是我放在后面的代码。 _if(FileUploadControl.HasFile) { 尝试 { 的XDocument文档= XDocument.Load(FileUploadControl.FileContent); //代码 } } _ – DottoreM 2012-07-17 14:09:01

回答

1

您需要删除UpdatePanel。你不能上载部分回发一个文件,如果你在UpdatePanel有触发文件上传是没有必要的:

<div style="text-align: center; margin-left: auto; margin-right: auto"> 
    <asp:fileupload id="FileUploadControl" runat="server" /> 
     &nbsp; 
     <asp:LinkButton ID="Append" runat="server" Text="Append" OnClick="Append_Click"></asp:LinkButton> 
     &nbsp; 
     <asp:LinkButton ID="Overwrite" runat="server" Text="Overwrite" OnClick="Overwrite_Click"></asp:LinkButton> 
</div> 

注:一般小费UpdatePanel发展。如果遇到任何不合理的怪异消除UpdatePanel并测试您的代码。根据页面/控件的复杂性,UpdatePanel有很多限制。

+0

我已经尝试了刚刚发布的确切代码。它仍然不起作用。 此外,我已经在page_load中插入了下面的代码行,没有运气。 012.File.Attributes.Add(“enctype”,“multipart/form-data”); ' – DottoreM 2012-07-17 14:34:18

+0

谢谢,以上是解决我的问题。我无法工作的原因是因为我有一些代码无法正常工作并干扰控制。 (JQuery对话框)。只要我修好它就像魅力一样。 – DottoreM 2012-07-19 13:41:20