MVC3 导出Excel 问题,急急急!!!!

问题描述

1.后台从数据库取出数生成FileResult,正常情况下浏览器可直接导出excel了但是现在想控制View层的按钮,点击导出按钮后禁用按钮,等事件完成再启用就出问题了。后台代码:[HttpPost]publicFileResultIndex(ReportModelmodel){if(!model.ReporType.HasValue){returnnull;}bytereportTypeValue=0;stringreportName=string.Empty;ReportTypeaccountMaster=_reportService.GetReportType(model.ReporType.Value);if(accountMaster==null){returnnull;}else{reportTypeValue=accountMaster.Id;reportName=accountMaster.Name;}bytebusinessTypeValue=0;stringbusinessName=string.Empty;if(model.BusinessType.HasValue){businessTypeValue=model.BusinessType.Value;businessName=_reportService.GetReportBusinessName(reportTypeValue,businessTypeValue);}vargetUser=GetUser();ReportSearchConditionrsc=newReportSearchCondition{ReportName=reportName,BusinessID=businessTypeValue,BusinessName=businessName,BeginTime=model.BeginTime.Value,EndTime=model.EndTime.Value.AddMilliseconds(997),OperaterID=getUser.UserCode,OperaterName=getUser.UserName};Func<ReportSearchCondition,DataSet>func=GetReportMethod(reportTypeValue);stringfileName=string.Format("{0}从{1}到{2}",rsc.BusinessID==0?rsc.ReportName:rsc.BusinessName,Convert.ToDateTime(rsc.BeginTime).ToString("yyMMdd"),Convert.ToDateTime(rsc.EndTime).ToString("yyMMdd"));ExportDataToExcel(func,rsc);returnFile(fileName,"application/vnd.ms-excel");}

2.前台通过Ajax.BeginForm来异步控制,onbegin就执行startFunc脚本禁用导出按钮,onsuccess就执行completeFunc启用导出按钮,但是这个时候,浏览器就不再出现下载EXCEL文件的提示了!!整了一天,希望有高手指点。顺便说下Ajax.BeginForm的UpdateTargetId="Result"能把报表结果导出到id=result这个div下面展示到页面,就是TM不出现下载文件。前台代码:@modelMyj.ELife.Financial.WebUI.Models.ReportModel@{ViewBag.Title="Index";}<divid="content"><fieldset><legend>报表导出</legend><divclass="edit">@using(Ajax.BeginForm("Index","Report",newAjaxOptions{LoadingElementId="message",OnBegin="startFunc",OnSuccess="completeFunc",//UpdateTargetId="Result"})){<tablecellpadding="0"cellspacing="0"class="table_edit"><tr><th>@Html.Encode("报表类型:")</th><td>@Html.DropDownList("ReporType",Model.AvailableReportTypeStatuses)</td><th>@Html.Encode("业务类型:")</th><td>@Html.DropDownList("BusinessType",Model.AvailableBusinessTypeStatuses)</td></tr><tr><th>@Html.Encode("开始时间:")</th><td>@Html.TextBox("BeginTime",null,new{@class="mediumfield",@id="txtBeginTime",onfocus="WdatePicker({dateFmt:'yyyy-MM-ddHH:mm:ss',readOnly:true})"})</td><th>@Html.Encode("截止时间:")</th><td>@Html.TextBox("EndTime",null,new{@class="mediumfield",@id="txtEndTime",onfocus="WdatePicker({dateFmt:'yyyy-MM-ddHH:mm:ss',readOnly:true})"})</td></tr><tr><tdcolspan="4"style="text-align:center;"><inputclass="button_big"type="submit"id="i_Export"value="报表导出"/></td></tr><tr><tdcolspan="4"style="text-align:center;"><divid="message"style="color:Red;display:none;"><imgid="loadingImg"src="../../Content/themes/images/loadingData.gif"/>正在导出...</div></td></tr><tr><tdcolspan="4"style="text-align:center;"><divid="Result"style="color:Red;"></div></td></tr></table>}</div></fieldset></div>@*<scriptsrc="@Url.Content("../../Scripts/My97DatePicker/WdatePicker.js")"type="text/javascript"></script>*@<scriptsrc="@Url.Content("~/Scripts/jquery.validate.min.js")"type="text/javascript"></script><scriptsrc="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"type="text/javascript"></script><scriptsrc="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")"type="text/javascript"></script><scripttype="text/javascript">varstartFunc=function(){$('input[id=i_Export]').attr('disabled',true);$('input[id=i_Export]').removeAttr('class');}varcompleteFunc=function(){$('input[id=i_Export]').removeAttr('disabled');$('input[id=i_Export]').attr('class','button_big');$.ajax({type:this.method,url:this.action,data:$(this).serialize(),});}$(document).ready(function(){$('select[id=ReporType]').change(function(){varid=$('select[id=ReporType]').val();//门店余额查询及深圳通明细查询(结算)不需要供应商if(id==2||id==5){$("#BusinessType").empty();$("<option></option>").val("").html("--请选择--").appendTo("#BusinessType");$('select[id=BusinessType]').attr("disabled",true);returnfalse;}$('select[id=BusinessType]').attr("disabled",false);varurl='@Url.Content("~/Report/GetAccountDetails?id=")'+id+"&"+Math.random();$.getJSON(url,function(result){$("#BusinessType").empty();$("<option></option>").val("").html("--请选择--").appendTo("#BusinessType");$.each(result,function(i){$("#BusinessType").append($("<option></option>").val(result[i].SupplierCode).html(result[i].SupplierName))});});});$('#i_Export').click(function(){varreporTypeId=$('select[id=ReporType]').val();if(typeof(reporTypeId)==undefined||reporTypeId==''){alert("请选择报表类型");returnfalse;}//检查选择的业务类型,排除门店余额查询及深圳通明细查询(结算)if(reporTypeId!=2&&reporTypeId!=5){varbussinessId=$('select[id=BusinessType]').val();if(typeof(bussinessId)==undefined||bussinessId==''){alert("请选择业务类型");returnfalse;}}//检查输入的日期是否合法varbeginTime=$('#txtBeginTime').val();varendTime=$('#txtEndTime').val();if(typeof(beginTime)==undefined||beginTime==''){alert("请输入开始时间!");returnfalse;}if(typeof(endTime)==undefined||endTime==''){alert("请输入结束时间!");returnfalse;}varbeginDate=newDate(beginTime.replace(/^(d{4})(d{2})(d{2})$/,"$1/$2/$3"));varendDate=newDate(endTime.replace(/^(d{4})(d{2})(d{2})$/,"$1/$2/$3"));if(beginDate>endDate){alert("开始时间不能大于结束时间!");returnfalse;}});})</script>

解决方案

解决方案二:
人烟稀少,顶一下
解决方案三:
没有高手吗?
解决方案四:
我也遇到这个问题了,lz是怎么解决的呀。。。。。
解决方案五:
马克一下,我也遇到这个问题,求解!
解决方案六:
也许是你的浏览器安全设置的问题

时间: 2024-09-13 10:15:09

MVC3 导出Excel 问题,急急急!!!!的相关文章

excel-asp.net mvc3 导出Excel并让客户端选择路径下载

问题描述 asp.net mvc3 导出Excel并让客户端选择路径下载 asp.net mvc3 导出Excel并让客户端选择路径下载 通过客户点击按钮,弹出选择路径 接着从数据库的用list将数据到出到Excel 怎么做? 解决方案 ASP.NET MVC Framework体验(5):路径选择(URL Routing)(转)ASP.NET MVC Framework体验(5):路径选择(URL Routing) 解决方案二: 是要下载这个excel文件还是?

asp.net-ASP.NET导出EXCEL之后刷新页面 在线等 在线等 在线等 急急急

问题描述 ASP.NET导出EXCEL之后刷新页面 在线等 在线等 在线等 急急急 实现了excel导出之后,我想要刷新一下页面可是调用了刷新方法,方法体走了,但是页面没有变求解答 解决方案 ASP.NET,急,急,急,在线等

急急急,。。。。。.net导出excel表,其中表头有几个列名是相同的怎么导出

问题描述 急急急,......net导出excel表,其中表头有几个列名是相同的怎么导出空空空联系地址商品名称 解决方案 解决方案二:相同的列名看你是想怎么展示了解决方案三:如果位置固定可以使用索引进行获得sheet[0]解决方案四:通过sheet获取表格Rangerange=datasheet.get_Range("A1","A2535");获取区域stringvalue=values.GetValue(i,j).ToString();获取单元格解决方案五:个人觉

急急急。。。。导出excel 页面怎么刷新 !!

问题描述 急急急....导出excel页面怎么刷新!!try{System.IO.FileStreamfs=System.IO.File.OpenRead(_FileName);byte[]FileData=newbyte[fs.Length];fs.Read(FileData,0,(int)fs.Length);Response.Clear();Response.AddHeader("Content-Type","application/notepad");str

怎么用java实现doc文档模板插入数据和表格并导出?急急急,在线等

问题描述 怎么用java实现doc文档模板插入数据和表格并导出?急急急,在线等 我要实现一个模板导出功能,模板包含标题和文字内容,模板中间还有一个表格,和结尾文字.要实现动态添加标题文字,其中表格中内容部分动态添加数据,可能会有多种模板,区别是表格样子不同,都要添加内容,最后整个导出doc文件.有没有demo?各位大神?谢谢了先.下面图片中红色框住部分是要动态添加数据的地方,其他地方是模板原型. 解决方案 下面是我实现的方式,用poi工具. /** * * @param filePath 源文件

java-【急,在线等】Java使用POI导出Excel,服务器部署后超过50行报错!

问题描述 [急,在线等]Java使用POI导出Excel,服务器部署后超过50行报错! Java使用POI导出Excel,服务器部署后超过50行报错,但本地调试无异常!具体错误信息如下: 10:13:44,761 ERROR org.apache.struts2.dispatcher.StreamResult StreamResultX : Can not find a java.io.InputStream with the name [excelStream] in the invocati

db2-在做数据导出的时候,WAS报sql错误(springMVC、mybatis、DB2) 急 急急

问题描述 在做数据导出的时候,WAS报sql错误(springMVC.mybatis.DB2) 急 急急 请帮忙看看究竟是报什么错呀,,,急急急 [14-3-7 10:27:37:460 GMT+08:00] 000001fc SystemErr R org.springframework.jdbc.UncategorizedSQLException: ### Error querying database. Cause: com.ibm.db2.jcc.b.SqlException The e

winform 看代码找问题 Excel导入导出的问题 急!在线等!

问题描述 问题描述1.导出的Excel字段什么都没问题,但我在导入到我的datagirdview时出现代码这一行出现modelTSInfo.ZZJJ=ds.Tables[0].Rows[j]["作者简介"].ToString();引发了"System.ArgumentException"类型的异常问题描述2.但是比如我导出的EXCEL名字是123.xls我打开这个EXCEL时点导入却能正常导入问题描述3.导出的Excel表里的字段,我不去改他编辑它.就在Excel里

急急急!!!asp.net 设置一条数据为默认值

问题描述 急急急!!!asp.net 设置一条数据为默认值 现在有两条,但是要求只能显示一条.因为它导出excel,就会导出两条,然后不符合要求,另外一个excel也会报错.所以我想做一个默认值,只能选择显示一个默认值.各位大神帮帮忙,在线等. 解决方案 导出excel,和多少条没关系吧,是不是你代码有bug啊 解决方案二: 还是没看懂. 只显示一条只要用来绑定的数据查询用 SELECT TOP 1 * FROM ... 的方式进行限定不就行了?