最近开发的过程中遇到这么一个问题,利用ajax和ashx文件实现下载功能。发现代码调试走完之后并没有弹出下载框。

研究了一段时间之后发现解决这种问题有两种方法,1.ajax获取数据集在前台做处理实现导出(个人不大喜欢这样有兴趣自行度娘)。2.既然都请求服务端了那就服务端搞定这件事。

下面说一下第二种方法:这种方法的实质上没有使用ajax的方式。

先说一下一般处理文件的写法

public class DownLoadExcel : IHttpHandler {

    public void ProcessRequest (HttpContext context) {
context.Response.ContentType = "application/vnd.ms-excel";
context.Response.ContentEncoding = Encoding.UTF8;
context.Response.Charset = "";
context.Response.AppendHeader("Content-Disposition",
"attachment;filename=" + HttpUtility.UrlEncode("测试", Encoding.UTF8));
//excel中插入数据
HSSFWorkbook workbook = new HSSFWorkbook();
Sheet sheet = workbook.CreateSheet("excel标签名称");
Row rowHeader = sheet.CreateRow();//设置表头
rowHeader.CreateCell().SetCellValue("第一列");
Row rowData= sheet.CreateRow();//插入一行数据
rowData.CreateCell().SetCellValue("值"); workbook.Write(context.Response.OutputStream);
workbook.Dispose();
} public bool IsReusable {
get {
return false;
}
}

1.利用<a></a>标签

<a href="test.ashx"></a>

这种方法不方便传入参数。

2.利用表单发送请求

可以用div将表单隐藏如下

<a id="aexport" href="#" onclick="aexport();">导出</a>
<div style="display:none">
<form target="_blank" method="post">
</form>
</div>

js代码如下

 function aexport() {
var url ="test.ashx?canshu1=1"
$("form").attr("action", url);//设置表单提交的对象
$("form").submit();//提交表单
}

利用jQuery npoi插件 asxh一般处理文件实现excel的下载的更多相关文章

  1. 利用jQuery对插件进行扩展时,方法$.extend()、$.fn.extend()区别与联系

      利用JQ开发插件的方法: 1.jQuery.extend(); 2.jQuery.fn.extend(); 3.通过$.widget()应用jQuery UI的部件工厂方式创建. 由于第三种方式通 ...

  2. 利用jquery.form实现异步上传文件

    实现原理 目前需要在一个页面实现多个地方调用上传控件上传文件,并且必须是异步上传.思考半天,想到通过创建动态表单包裹上传文件域,利用jquery.form实现异步提交表单,从而达到异步上传的目的,在上 ...

  3. c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)

    c# 利用动态库DllImport("kernel32")读写ini文件 自从读了设计模式,真的会改变一个程序员的习惯.我觉得嘛,经验也可以从一个人的习惯看得出来,看他的代码编写习 ...

  4. js: 文件(excel)下载处理

    以前很少接触文件下载的功能,昨天和后台开发人员联调下载功能出现了问题,一开始我请求接口,返回二进制文件流乱码,在网上找了方法,可以解决.后面后台开发人员改了一下,返回文件地址,然后就解决了.所以我了解 ...

  5. asp.net配置web.config支持jQuery.Uploadify插件上传大文件

    配置web.config有两处地方需要配置,分别是集成模式和经典模式. 集成模式: <!--文件上传大小设置--> <httpRuntime requestValidationMod ...

  6. 使用jquery form插件进行异步带文件的表单提交

    引入form插件与jquery 的js文件后 获取表单的jq对象 然后.ajaxSubmit提交表单即可 实现添加品牌的异步表单提交 function addBarandImg(formId) { $ ...

  7. 利用jquery mobiscroll插件选择日期、select、treeList的具体运用

    体验更优排版请移步原文:http://blog.kwin.wang/programming/jquery-mobiscroll-select-treeList.html mobiscroll是个很好用 ...

  8. 利用jquery.backstretch插件,背景切换

    //首页自动更换背景特效开始============================================1.引用文件<script src="jquery.js" ...

  9. Linux未安装上传下载的插件,怎么进行文件的上传下载

    首先连上服务: 然后Alt+p,打开SFTp窗口: 例如,我们今天要往tomcat的webappmu目录下上传一个文件: 先pwd,查看我们Linux上所处的目录:pwd 然后进入到tomcat的we ...

随机推荐

  1. Webx之表单验证

    引入服务器端表单验证service,是通过在webx.xml中通过服务引入的方式完成的.例如,在user相关信息的表单验证的产生过程是这样的:webx-user.xml通过 <beans:imp ...

  2. oracle的sqlnet.ora , tnsnames.ora , Listener.ora 文件的作用(转)

    oracle网络配置三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下.1. sqlnet.o ...

  3. java自定义接口

    compareTo:根据该数值是小于.等于.或大于 val 返回 -1.0 或 1:

  4. Redundant Call to Object.ToString()

    Redundant Call to Object.ToString() The + operator for string is overloaded to call String.Concat pa ...

  5. POJ_3176_Cow_Bowling_(数字三角形)_(动态规划)

    描述 http://poj.org/problem?id=3176 给出一个三角形,每个点可以走到它下面两个点,将所有经过的点的值加起来,问最大的和是多少. Cow Bowling Time Limi ...

  6. Android——显示当前运行所有服务,判断服务是否运行

    1.显示系统当前所有运行服务: ActivityManager am = (ActivityManager) MainActivity.this.getSystemService(Context.AC ...

  7. 《C语言程序设计现代方法》第1章 C语言概述

    C语言的特点:C语言是一种底层语言.C语言是一种小型语言.C语言是一种包容性语言. C语言的优点:高效.可移植.功能强大.灵活.标准库.与UNIX系统集成. C语言的缺点:C程序更容易隐藏错误.C程序 ...

  8. 哈希(3) java中的hashcode

    看看jdk api中对object类的描述 1.http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html 2首先你要知道每个对象都有 ...

  9. js的 new image()用法[转]

    创建一个Image对象:var a=new Image();    定义Image对象的src: a.src=”xxx.gif”;    这样做就相当于给浏览器缓存了一张图片. 图像对象: 建立图像对 ...

  10. Shell如何传递字符串

    Shell 在写函数的时候,有时候需要传递字符串,由于字符串中有空格,所以结果总是不对,下面写个小例子,解决这个问题: #!/bin/bash # value init TT="adb sh ...