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. hackerrank [Week of Code 33] Bonnie and Clyde

    任意门 题意:给一个图,每次询问给三个点a,b,c,问是否存在一条从a到c,一条b到c的路径除c外无交点. 双连通分量缩点建出圆方树是必须的,然后我们需要判断c是否在a到b的路径上,或者c的某个相邻的 ...

  2. Codeforces Round #301 (Div. 2)(A,【模拟】B,【贪心构造】C,【DFS】)

    A. Combination Lock time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...

  3. UOJ#152. 【UR #10】汉诺塔

    题目:http://uoj.ac/problem/152 orzKPM... 分治,把数字是l~mid的拿出来放在一根柱子上,mid+1~r放在另一根柱子上.如此递归下去,每次递归只是改一下方向,l, ...

  4. 使用Eclipse在Excel中找出两张表中相同证件号而姓名或工号却出现不同的的项

    1:首先把Excel中的文本复制到txt中,复制如下: A表: 证件号                           工号  姓名 310110xxxx220130004 101 傅家宜3101 ...

  5. js BOM DOM

    BOM对象 BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执行其他与页面内容不直接相关的动作. 简而言之就是使 JavaScript ...

  6. Spark算子--leftOuterJoin和rightOuterJoin

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/cb71cd3ac5d7965a2c61891659264d54.html leftOuterJoin和righ ...

  7. 我在vs文本编辑中常用的快捷键----常更新

    1. Ctrl+向上键----文本向上滚动  Ctrl+向下键----文本向下滚动  Ctrl+Enter-----向下增加一行  Ctrl+Shift+Enter-------向上增加一行 2. 避 ...

  8. 配置国内PIP源方法

    python开发者都知道,当我们pip install安装扩展库的时候,经常遇到安装失败(超时)等,有时候是因为国外镜像被屏蔽了,带来不少麻烦, 随着国内python开发的增多,越来越多企业都开放了自 ...

  9. 访问网站出现 Directory Listing Denied This Virtual Directory 

    出现这个提示是指没有在您指定的目录找到默认首页,比如您直接输入域名访问空间, 但是出现以上提示,那么请检查目录下是否有 index.htm,index.html,index.asp,default.a ...

  10. sublime text3怎么批量查找替换文件夹中的字符

    在编写代码的时候,往往有些代码是重复的,但是如果要改一处代码,其他的地方也要改.那么怎么批量修改呢?下面小编就以sublime text3为例来讲解一下sublime text3怎么批量查找替换文件夹 ...