1.初始化

var table = $('#table').DataTable({
"data": data[0].DATA,
"columns": data[0].COLUMNS
})

后台返回前台data的JSON格式

[{
"COLUMNS": [{
"title": ""
}, {
"title": ""
}],
"DATA": [
["", ""],
["", ""]
]
}]

将DataTable加表头转换为JSON(flag是一个状态字段)(header是字符串数组:"标题1,标题2,标题3".Split(','))

private void DataTableToJSON(DataTable dt, string[] header, int flag, ref StringBuilder sb)
{
int total = dt.Rows.Count;
string tempcol = null;
string kong = null;
for (int i = ; i < header.Length; i++)
{
tempcol = tempcol + "{ \"title\": \"" + header[i] + "\"},";
kong = kong + ",";
}
tempcol = "\"COLUMNS\":[" + tempcol.TrimEnd(',') + "],";
kong = kong.Substring(, kong.Length - );
sb.Append("[{");
sb.Append("\"FLAG\":\"" + flag + "\",");
sb.Append(tempcol);
if (total == )
{
sb.Append("\"DATA\":[]}]");
}
else
{
sb.Append("\"DATA\":[");
//转化为Json格式
foreach (DataRow row in dt.Rows)
{
sb.Append("[");
foreach (DataColumn column in dt.Columns)
{
sb.Append("\"" + row[column.ColumnName].ToString().Replace("\r\n", "<BR/>").Replace("\\", "\\\\").Replace("\t", "\\t").Replace("\\r", "\\r").Replace("\n", "<BR/>").Replace("\"", "&quot;") + "\",");
}
sb.Remove(sb.Length - , );
sb.Append("],");
}
sb.Remove(sb.Length - , );
sb.Append("]}]");
}
}

2.控制DataTable列

targets为列索引,可以为[0,1,2]数组方式,[-1,-2]是列索引倒序

"columnDefs": [
{
targets: -1,
render: function (data, type, row, meta) {
return "<a href=\"taskIndicatorScore.aspx?id=" + data + "&type=LEADER\">领导审核</a>";
},
visible: l_v
}
]

3.导出EXCEL

buttons: [
{
extend: 'excel',
text: '<i class="fa fa-file-excel-o bigger-110 green"></i>',
title: 'EXCEL模板',
className: "btn btn-white btn-primary btn-bold",
titleAttr: '导出EXCEL模板', exportOptions: { //从DataTable中选择要收集的数据。这包括列、行、排序和搜索的选项。
"columns": [0, 1, 3, 4, 5, 6, 7, 8],//设置需要导出的列索引
'format': { //用于导出将使用的单元格格式化函数的容器对象 format有三个子标签,header,body和foot
'header': function (data, columnIdx) {
return data;
},
"body": function (data, columnIndex, rowIndex, node) { //body区域的function,可以操作需要导出excel的数据格式
if (columnIndex > 2 && (data == "" || data == null)) {
return "3";
} else {
return data;
}
}
}
}
}
]

  

Jquery DataTable控制显示列,导出EXCEL的更多相关文章

  1. jquery里面控制显示和隐藏 ___土狗toggle

    $("#hide").click(function(){ $("p").hide(); }); $("#show").click(funct ...

  2. CSS 相对/绝对(relative/absolute)定位与jQuery的控制显示隐藏

    曾经写显示隐藏老是用jq方法控制: dom.show(); dom.hide(); 事实上这样还是有非常多缺陷的. 这是html结构: <div class="holi"&g ...

  3. Jquery datatable 动态隐藏列(根据有无值)

    一场景: 前端利用datatable初始化的时候会向后端调用数据,需求是 要动态的使某一列根据传回来的一个标志位是否有值来决定显示与否 这是当前传回值有活动优惠幅度的情况下 这是没有活动优惠的情况下 ...

  4. jquery DataTable默认显示指定页

    原文:https://blog.csdn.net/zimuxin/article/details/83304819 主要添加iDisplayStart和iDisplayLength参数即可 $('#t ...

  5. 在ASP.NET根据DataTable中的内容导出Excel

    前台代码: <asp:Button ID="btnExcel" runat="server" Text="Excel导出" CssCl ...

  6. Datatable 省略显示列中内容,当鼠标放在内容上,悬浮显示全部内容

    第一种方法是网上看到的,没成功,贴出来参考一下 <!DOCTYPE html> <html lang="en"> <head> <meta ...

  7. DataTable插件通过js导出Excel

    $('#myTab').DataTable( { serverSide: false,//分页,取数据等等的都放到服务端去. true为后台分页,每次点击分页时会请求后台数据,false为前台分页 d ...

  8. mvc jQuery 点击按钮实现导出Excel功能 参数长短不限

    var exportSubmit=function(url, obj){ var form = $("<form>"); //定义一个form表单 form.attr( ...

  9. mysql查询用if控制显示列

    1: select *,if(sex=1,”男”,”女”) as sex from user2: select CASE sex WHEN 1 THEN ‘男’ ELSE ‘女’ END as sex ...

随机推荐

  1. ACM_并查集

    //题意:ignatius过生日,客人来到,他想知道他需要准备多少张桌子.然而一张桌子上面只能坐上相互熟悉的人, //其中熟悉可定义成为A与B认识,B与C认识,我们就说A,B,C相互熟悉 .例如A与B ...

  2. as提示功能

  3. CMD命令操作MySql数据库详解

    第一:mysql服务的启动和停止 1.  net stop mysql 2.  net start mysql 第二:登录 mysql –u用户名 [–h主机名或者IP地址] –p密码 例如:mysq ...

  4. java序列化反序列化深入探究

    When---什么时候需要序列化和反序列化: 简单的写一个hello world程序,用不到序列化和反序列化.写一个排序算法也用不到序列化和反序列化.但是当你想要将一个对象进行持久化写入文件,或者你想 ...

  5. 使用npm安装依赖,尽量别使用cnpm,会漏掉很多依赖的

    使用npm安装依赖,尽量别使用cnpm,会漏掉很多依赖的

  6. 宝塔linux面板.txt

    安装命令: yum -y install screen wget && screen -S bt wget -O install.sh http://103.224.251.79:58 ...

  7. 手机WebApp是什么?

    手机WebApp是基于HTML5+css3开发的,一次开发,可以兼容许多的平台(android/iphone),调用本地功能(比如照相),可以用phonegap去实现,所以,是一个趋势.相比每个平台定 ...

  8. java 三大框架

    SSH即:Spring.Struts.HibernateSpring:功能强大的组件粘合济,能够将你的所有的java功能模块用配置文件的方式组合起来(还让你感觉不到spring的存在)成为一个完成的应 ...

  9. ap web

    apapplication端吧    应用程序端   也C-S架构Cweb网页端   般封装httpservletrequest和httpservletresponse对象处理些操作  b-s架构

  10. jsonArray与 jsonObject区别与js取值

    一.JSONObject和JSONArray的数据表示形式 JSONObject的数据是用 {  } 来表示的, 例如:   { "id" : "123", & ...