asp.net – 在更新面板中自动上传文件到服务器第一次不起作用
|
要求 我正在尝试上传一个文件,一旦用户选择它。我必须满足以下要求: >按钮看起来像应用程序中的其他按钮。 当前代码 以下是我的视图文件的外观: <asp:UpdatePanel ID="upData" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<div style="width: auto; float: right;">
<asp:Button ID="btnFileImportSkin" CssClass="ButtonSkin AddButton" Text="Import" Style="position: absolute; z-index: 2;" runat="server" OnClientClick="Javascript:onImport(); return false;" />
<asp:FileUpload ID="fileImport" Visible="false" Style="position:relative; opacity:0;" runat="server" onchange="Javascript:onFileSelected();" />
<%-- onchange="Javascript:this.form.submit();" /> --%>
<%-- <asp:Button ID="btnUpload" runat="server" OnClientClick="Javascript:alert('Uploading...'); __doPostBack('<%= btnUpload.ID %>',''); return false;" /> --%>
<asp:Button ID="btnUpload" OnClick="btnUpload_Click" runat="server" />
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnUpload" />
</Triggers>
</asp:UpdatePanel>
相关Javascript: <script type="text/javascript">
function onImport() {
var fileImportClientId = '<%= fileImport.ClientID %>';
document.getElementById(fileImportClientId).click();
}
function onFileSelected() {
alert("File Selected");
// I have tried calling the function directly and with a timeout
setTimeout(onUpload,20);
}
function onUpload() {
var btnUploadClientId = '<%= btnUpload.ClientID %>';
document.getElementById(btnUploadClientId).click();
}
</script>
代码背后: protected void btnUpload_Click(object sender,EventArgs e)
{
// PostedFile is null first time code gets here on user selecting a file
if (fileImport.PostedFile != null)
{
if (fileImport.PostedFile.FileName.Length > 0)
{
ImportFromFile();
}
}
}
说明/流量 >用户点击btnFileImportSkin按钮。 但问题是这个 fileImport.PostedFile在第一次用户选择文件时为空。一切工作正常,第二次和从那里。 有关 This question与我的问题密切相关,但OP可能需要像Gmail一样的Async上传解决方案。我已经尝试过如下这个问题的答案: > __doPostBack()在btnUpload的OnClientClick事件中 补充笔记 >当我没有更新面板时,这个东西很好。我正在使用this.form.submit()直接在FileUpload控件的onchange事件中。 注意:在上面的FileUpload控件中添加了Visible =“false”。这是问题,但我在提问时忽视了这个问题。 解决方法此代码适用于我,同时定位.Net 4.5和4.0框架版本。我将您的代码复制/粘贴到一个新的Web窗体应用程序中,在这两种情况下,fileImport.PostedFile不为空,但包含我选择的图像流。您网页上的任何其他标记是否有问题?或者您的页面生命周期?您在用户控件或Web表单页面上发布的HTML / JavaScript? (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 按钮属性: – commandName和CommandArguments
- asp.net – 如何调试w3wp clr.dll错误
- ASP.NET MVC Url路由支持(点)
- 单个ASP.net网站与多个实例和web.configs
- 为什么MVC而不是好的旧ASP.NET?还没有抓住为什么要走这条路
- asp.net – web配置错误:无法识别的属性’xmlns:xdt’.请
- ASP.NET MVC 4和ExtensionlessUrlHandler
- Asp.net实现MVC处理文件的上传下载功能实例教程
- asp.net-mvc – Sitecore 7.5 MVC和HttpContext.Session.Ti
- asp.net-mvc – ASP.NET MVC 5中的级联下拉列表
- asp.net – 如何避免UpdatePanel在AutoPostBack上
- asp.net – 如何使用Eval在数据绑定控件中调用扩
- asp.net-mvc-3 – mvc3 – 如何从源代码禁用符号
- asp.net – 通过调用.ashx页面下载文件
- asp.net – SqlException(0x80131904):第28行:
- ASP.NET MVC中使用区域时的配置错误4
- asp.net – .NET Web API HttpResponseMessage模
- 使用ASP.NET Web API 2.1配置依赖注入
- asp.net – 将字符串传递到MVC4中的部分视图
- asp.net-mvc – MVC3将@model传递给局部视图
