Jquery DataTable控制显示列,导出EXCEL
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("\"", """) + "\",");
}
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的更多相关文章
- jquery里面控制显示和隐藏 ___土狗toggle
$("#hide").click(function(){ $("p").hide(); }); $("#show").click(funct ...
- CSS 相对/绝对(relative/absolute)定位与jQuery的控制显示隐藏
曾经写显示隐藏老是用jq方法控制: dom.show(); dom.hide(); 事实上这样还是有非常多缺陷的. 这是html结构: <div class="holi"&g ...
- Jquery datatable 动态隐藏列(根据有无值)
一场景: 前端利用datatable初始化的时候会向后端调用数据,需求是 要动态的使某一列根据传回来的一个标志位是否有值来决定显示与否 这是当前传回值有活动优惠幅度的情况下 这是没有活动优惠的情况下 ...
- jquery DataTable默认显示指定页
原文:https://blog.csdn.net/zimuxin/article/details/83304819 主要添加iDisplayStart和iDisplayLength参数即可 $('#t ...
- 在ASP.NET根据DataTable中的内容导出Excel
前台代码: <asp:Button ID="btnExcel" runat="server" Text="Excel导出" CssCl ...
- Datatable 省略显示列中内容,当鼠标放在内容上,悬浮显示全部内容
第一种方法是网上看到的,没成功,贴出来参考一下 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- DataTable插件通过js导出Excel
$('#myTab').DataTable( { serverSide: false,//分页,取数据等等的都放到服务端去. true为后台分页,每次点击分页时会请求后台数据,false为前台分页 d ...
- mvc jQuery 点击按钮实现导出Excel功能 参数长短不限
var exportSubmit=function(url, obj){ var form = $("<form>"); //定义一个form表单 form.attr( ...
- mysql查询用if控制显示列
1: select *,if(sex=1,”男”,”女”) as sex from user2: select CASE sex WHEN 1 THEN ‘男’ ELSE ‘女’ END as sex ...
随机推荐
- UVA 10881 - Piotr's Ants【模拟+思维】
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- [51nod1457]小K vs. 竹子
小K的花园种着n颗竹子(竹子是一种茎部中空并且长得又高又快的热带植物).此时,花园中第i颗竹子的高度是hi米,并且在每天结束的时候它生长ai米. 实际上,小K十分讨厌这些竹子.他曾经试图去砍光它们,但 ...
- Shortest path of the king
必须要抄袭一下这个代码 The king is left alone on the chessboard. In spite of this loneliness, he doesn't lose h ...
- [学习OpenCV攻略][016][RedHat下安装OpenCV]
安装环境 操作系统: Red Hat Enterprise Linux Server 6.3 相关软件: ffmpeg-0.8.15.tar.bz2.cmake-3.5.1.tar.gz.OpenCV ...
- python写一个防御DDos的脚本(请安好环境否则无法实验)
起因: 居然有ddos脚本,怎么可以没防御ddos的脚本! 开始: 1.请执行 install.py安装好DDos-defalte,会在root目录下多出这个文件夹 代码: 2.然后执行fyddos. ...
- Spark_总结七_troubleshooting
转载标明出处 http://www.cnblogs.com/haozhengfei/p/07ef4bda071b1519f404f26503fcba44.html Spark_总结七_troubles ...
- 动态查询:getBy字段名
http://www.php.cn/php/php-getBy.html 根据字段名动态查询:getBy字段名( ) 该方法很有意思,手册的说得很简略,我们根据源码来好好说道说道~~ 1. 功能:根据 ...
- 4种常用扒站工具(webzip、ha_TeleportPro、Offline Explorer、wget)
许多开始做lead,EMU的新手,需要一个英文网站,找人定制费用太贵自己又不会技术的话,可以通过扒站来获得英文站,今天给大家介绍几种扒站工具: 1.HA_TeleportPro: Teleport P ...
- Linux的软件安装(JDK安装,Mysql安装,Tomcat安装)
1.JDK安装 注意:rpm与软件相关命令 相当于window下的软件助手 管理软件 步骤: 1)查看当前Linux系统是否已经安装java 输入 rpm -qa | grep java ps:博主这 ...
- IDEA、Matlab 注释
IDEA ctrl+/ 多行代码分行注释,再按一次取消 ctrl+shift+/ 多行代码注释在一个块里,只在开头和结尾有注释符号 Matlab 注释:Ctrl+/ Ctrl+R 取消注释:Ctrl+ ...