首先要肯定一个问题:前端
一次性加载完
仍是点击下一页从新请求服务器
?根据你上边数据返回的方式,咱们分类来处理。web
这种的话,每次点击下一页是须要从新请求服务器的,因此咱们只需发送请求,而后后台从数据库select数据获得list,将list传给生成EXCEL的函数(通常都是用POI)。数据库
好比:当用户搜索性别为女的学生时,
后端
前端给后端发送post请求(带参数的)服务器
后端响应第一页的数据。异步
而咱们点击导出的时候,咱们须要获取搜索
操做的请求内容,发给后端。svg
通过个人不懈努力,我在$("#grid")
对象中找到了上次请求的数据:函数
具体位置是在$("#grid")[0].p.postData
。post
那么我只须要获取这个对象,而后当用户点击导出按钮以后,带上postData
的参数,发送导出文件的请求,而后后端根据参数查询出全部符合条件的student对象,组合成一个list,而后生成excel文件流,供用户下载。
**PS:**关于后端传文件流,前端如何保存为文件下载下来。这个我在第二种方式里边介绍过经过文件流异步实现下载文件,有兴趣的能够去看看。.net
这一种,我在上一篇博客中已经介绍过这个方法,因此直接上链接。
传送门:戳我