GridView选择性导出Excel解决方案

更新时间:2023-06-07 00:38:22 阅读: 评论:0

GridView选择性导出Excel解决方案
这篇文章主要介绍了GridView选择性导出Excel的解决方案,需要的伴侣可以参考下
水库钓鱼
一、需求分析
首先依据用户需求,可以进展选择性导出,之前已经做了全部导出,这次新需求又来了,不过认真想想也对,全部导出几万条数据,意义并不大,而可选择性的导出用户需要的数据才是用户需要的。有需求就有解决方法。
任何问题的解决方法都不止一个,GridView的选择性导出也一样,首先GridView绑定的是数据库的表数据,选择导出,我们也可以从数据中查询需要的数据,可以直接从前台GridView表中取得数据,问题来了,怎么推断选中了,怎么后去选中的那条信息的主键〔或者获得整条信息〕两个方向,到底哪个效率哪个更优?
二、解决方法
ONE
1.前台猎取选中行的主键信息,通过JSON格式,传送到后台,后台解析后,再从数据库中取得数据,通过DataTable导出到Excel ⑴. 导出所选操作
穷图匕见
代码如下:
asp:Button ID="Export" runat="rver" CssClass="btn-lit" Text="导出所选" OnClientClick="return getnumberExport()" OnClick="Export_Click"/
⑵. 前台JS,猎取选中行的那条信息的主键,也就是GridView要有一列是主键,猎取到全部的主键以JSON格式保存,然后传到效劳器代码如下:
script type="text/javascript"
function getnumberExport() {
if (ExportCheck()) {
//通过GridView ID猎取元素
var gv = ElementById("ctl00_ContentPlaceHolder1_gridView");
//猎取GridView的Input html
var mycheck = gv.getElementsByTagName("input");
//定义一个新数组
var fam = new Array();
var hg;
var id;
//循环检测checkbox标签,猎取每条数据的主键信息
for (var i = 0; i mycheck.length; i++) {
if (mycheck[i].type == 'checkbox')//hidden
{
//假设checkbox被选中
if (mycheck[i].checked == true) {
var numid = new Object();
hg = gv.rows(i + 1).cells(20).innerHTML;
福利社会情感短文//substring() 方法用于提取字符串中介于两个指定下标之间的字符。//LastIndexOf()倒取字符串,从后往前取到指定的字符
hg = hg.substring(hg.lastIndexOf("=") + 1, hg.lastIndexOf("""));
//猎取一条数据的主键
id = gv.rows(i + 1).cells(1).innerHTML;
numid.number = hg;
numid.id = id;
fam.push(numid);
}
}
}
//$.ajaxSetup({
// async: fal //设置为同步恳求
//});
//将数组转换成JSON类型
var nid = JSON.stringify(fam);
//post方式,向效劳器传送数据
$.post("List.aspx", { Action: "action", numid: nid}, function (result) { });
}
el {
return fal;
}
}
/script
⑶. 后台解析JSON,转换成DataTable,导出到Excel 代码如下:
protected void Page_Load(object nder, EventArgs e) {
//推断效劳器是否正确接收数据
if (Request.Params["Action"] !=null)
{
//猎取前台的JSON
爱我的人和我爱的人简谱string numid = Request.Params["numid"].ToString(); Session["numid"] = numid;
}
}
/
// summary
雷锋的品质/// 选择性导出EXCEL
/// /summary
/// param name="nder"/param
/// param name="e"/param
炒鸡腿肉protected void Export_Click(object nder, EventArgs e)
{
FamilyPlanningFacade familyPlanningFacade = new FamilyPlanningFacade(); //实例化计生外观层
DataSet dsAllFamily = new DataSet();
DataSet dsOneFamily = new DataSet();
dsAllFamily = familyPlanningFacade.GetAllList(); //获得全部计生信息dsAllFamily.Tables[0].Rows.Clear();
先就业再择业//解析JSON;需引入Newtonsoft.Json和Newtonsoft.Json.Linq库JArray numidget = (JArray)JsonConvert.DerializeObject(Session["numid"].ToString());
//遍历JSON中所需要的值,在通过这个值查询数据库猎取一条数据,将数据参与新行
for (int i = 0; i numidget.Count; i++)
{
JObject numberget = (JObject)numidget[i];
string num = numberget["number"].ToString();
if (num.Equals(""))
{
//猎取id的键值
string id = numberget["id"].ToString();
//enBasic.ID = id;
//通过id的值(唯一)查询到一条数据

本文发布于:2023-06-07 00:38:22,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/889623.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   导出   猎取   主键   信息
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图