前台:<input id="InsertToExcel_btn" type="button" value="导出Excel" class="btn"/>
- JScript code
//导出Excel功能 function inserToExcelBtnClick() { var sendID = ""; var url = "ToExcel.action"; for (var i = 0; i < count; i++) { sendID = sendID + ";" + treeNodeID[i]; } sendID = sendID.slice(1); alert(sendID); $.post(url, { "type": mappingType, "list": sendID }, function() { }, "json"); };
后台ToExcel的主要代码:
- C# code
MemoryStream ms = NPOIHelper.ToExcel(RequirementDetailForXls) as MemoryStream; context.Response.AddHeader("Content-Disposition", ("attachment;filename=" + filename)); context.Response.Charset = "UTF-8"; context.Response.ContentType = "application/json"; context.Response.BinaryWrite(ms.ToArray()); ms.Close(); ms.Dispose();
运行结果:
浏览器没有出现Excel的下载对话框,在firebug的里面看Response,是一堆乱码。
PS:菜鸟,初学,可能连问题都问得不是很清楚,还请大神们见谅,不吝赐教,谢谢!
------解决方案--------------------------------------------------------
异步传递文件,很抱歉,这个功能 可能要等html5了
如果你只是不想刷新页面,
你可以这样
把
- JScript code
$.post(url, { "type": mappingType, "list": sendID }, function() { }, "json");
------解决方案--------------------------------------------------------
src长度限制2046字节,个人测试2020长度极限(IE)
HTML5貌似增加了新的通信对象,支持服务器 推,目前没有研究,你可以看看