【发布时间】:2012-07-17 14:04:04
【问题描述】:
我在尝试使用 ASP.NET 文件上传控件时遇到了困难。 发生的事情是,当我从后面的代码中调用文件上传控件时,我总是得到 FileUploadControl.HasFile = false。 我进行了一些研究并尝试了不同的方法,但无济于事。该控件用于以下场景: 该控件包含在一个 div 中,该 div 将通过 JQuery 作为弹出对话框调用。与文件上传控件一起,还有两个链接按钮,它们将操作上述控件(从文件导入 XML 并进行操作)。
谢谢。
下面是我的代码示例。
<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>
<asp:LinkButton ID="Append" runat="server" Text="Append" OnClick="Append_Click"></asp:LinkButton>
<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>
【问题讨论】:
-
Afaik 文件上传无法使用 AJAX 脚本管理器编写脚本。您将不得不寻找不同的解决方案。问题是,现在可以使用 Javascript 上传文件,但这不包含在当前的 ASP.NET 脚本管理器中。你将不得不做一个完整的回发。这意味着您的页面将被完全重新加载。
-
您是否希望在单击
UpdatePanel中的按钮时上传文件? -
freefaller,这是我放在后面的代码。 if (FileUploadControl.HasFile) { try { XDocument 文档 = XDocument.Load(FileUploadControl.FileContent); //代码 } }
-
也许这可能是你的问题:stackoverflow.com/questions/2264541/…
-
我现在明白了,PostBackTrigger 应该执行完整的回发而不是异步回发。但是你的 ASPX 在这里看起来如何,你可以完全摆脱它。删除 ScriptPanel 和 ScriptManager 以及触发器,我们会看到。
标签: c# asp.net .net visual-studio-2010 updatepanel