Jquery Datatables(三)
最近在项目中又使用Datatables的一个有趣功能,官网列子如下图:
点击“+”,展开列表,再次点击收缩。
官网的列子点击展开后的数据也是原来行中的数据,这边有了一个想法是否可以利用Ajax去动态加载数据,让“+”实现主从表的功能?
分析后觉得可以,动手实验。
首先,敲代码去实现不带“+”的表格,这个应该很简单。
然后加入一列,让第一列展示一个“+”图片。
var table = $('#example').DataTable({
"bSort": false, //排序设置为False
"bFilter": false,//搜索设置为False
"sAjaxSource": "/XXXX/XXXX/XXXX",
"aoColumns": [
{
"mDataProp": "Id",
"className": 'details-control', //运用样式来加载图片
"render": function (data, type, row) {
return ''; //关键,让第一列什么都不现实
}
},
{
"mDataProp": "Name"
}, { "mDataProp": "WorkDay" }
]
});
Datatables
其中,CSS的样式可以参考官网列子:
td.details-control {
background: url('../resources/details_open.png') no-repeat center center;
cursor: pointer;
}
tr.shown td.details-control {
background: url('../resources/details_close.png') no-repeat center center;
}
CSS代码
接下来,就是如何让点击“+”时展开并加载数据,添加监听事件:
//对TR中每行扩展,缩小添加事件
$('#example tbody').on('click', 'td.details-control', function () {
var tr = $(this).closest('tr');
var row = table.row(tr); var employeeId = row.data().EmployeeID;
var workDate = row.data().WorkDate; if (row.child.isShown()) {
row.child.hide();
tr.removeClass('shown');
}
else {
//通过Ajax获取从表信息
$.ajax({
url: "/XX/XXX/XXX",
type: "Get",
data: { "XXX": XXX, "XX": XXX },
success: function (data) {
row.child(format(data)).show();
tr.addClass('shown');
}
});
}
});
添加监听事件
其中format函数需要利用Ajax返回数据实现动态表格也就是用js拼接Html代码:
//动态添加表格
function format(data) {
var total = data.total; //通过JSON数据创建table表
var tableHtml = '<div class="row"><div class="col-sm-1"></div><div class="col-sm-11"><table class="table table-striped table-condensed table-bordered table-hover"><thead>' +
'<tr><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td>XXX</td><td></td></tr></thead>';
for (var i = 0; i < total; i++) {
var d = data.data[i];
if(i%2==0){//隔行颜色不同设置
tableHtml += '<tr class="success">';
} else
{
tableHtml += '<tr>'
}
tableHtml +=
'<td style="vertical-align: middle">' + d.XXX.substr(0, 10) + '</td>' +
'<td style="vertical-align: middle">' + d.XXX + '</td>' +
'<td style="vertical-align: middle">' + d.XXX + '</td>' +
'<td style="vertical-align: middle">' + d.XXX + '</td>' +
'<td style="vertical-align: middle">' + d.XXX + '</td>' +
'<td style="vertical-align: middle"><button class="btn btn-danger btn-xs" type="btn" onclick="deleteItem(\'' + d.Id + '\')">删除</button></td>' +
'</tr>';
}
tableHtml += '</table></div></div>';
return tableHtml;
}
动态拼接表格
Jquery Datatables(三)的更多相关文章
- [jQuery]jQuery DataTables插件自定义Ajax分页实现
前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...
- jQuery datatables
jQuery datatables 属性,用例 参考:http://datatables.club/example/ http://blog.csdn.net/mickey_miki/article/ ...
- jQuery DataTables 插件使用笔记
初始化 在页面中 <!DOCTYPE html> <html> <head> <link rel="stylesheet" type=&q ...
- JQuery Datatables(一)
最近项目中用了Bootstrap的样式风格,控件用了JQuery Datatables,主要有几下几点目标: 实现BootStrap风格的table,使用Ajax获取数据,并有勾选项 可以实现全选,单 ...
- JQuery DataTables Editor---只修改页面内容
近来在工作中需要对JQuery DataTables进行增,删,改的操作,在网上找了一些资料,感觉比较的好的就是(http://editor.datatables.net/)文章中所展示的操作方法(如 ...
- jquery datatables api (转)
学习可参考:http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/20069 ...
- 最全的jquery datatables api 使用详解
学习可参考:http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/20069 ...
- jquery datatables api
原文地址 学习可参考:http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/ ...
- jQuery dataTables四种数据来源[转]
2019独角兽企业重金招聘Python工程师标准>>> 四种数据来源 对于 dataTables 来说,支持四种表格数据来源. 最为基本的就是来源于网页,网页被浏览器解析为 DOM ...
随机推荐
- 通过Microsoft Azure服务设计网络架构的经验分享
作者 王枫 发布于 2014年4月8日 本文从产品设计和架构角度分享了Microsoft Azure网络服务方面的使用经验,希望你在阅读本文之后能够了解这些服务之间,从而更好地设计你的架构. Mic ...
- WPA Supplicant 用法
本文译至:https://wiki.archlinux.org/index.php/WPA_Supplicant_%28%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87%29 ...
- VS2010+Oracle11+Entity Framework4.1环境搭建及常见问题(转)
一,开场白: 在微软的实体数据模型中存在四种查询方式:SQL字符串:Linq:Linq to SQL:Linq to Entity(ESQL) 对于Linq SQL目前微软虽然仍在支持,但微软已经声明 ...
- leecode 回文字符串加强版
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...
- mongDB基本命令和Java操作MongoDB
上一篇博文<mongoDB安装>我们安装了mongoDB,现在来复习一下它的一些基本命令:mongoDB的bin目录加入到path之后,命令行中输入mongo: 然后我们进入正题 1.查看 ...
- How I Mathematician Wonder What You Are! - POJ 3130(求多边形的核)
题目大意:判断多多边形是否存在内核. 代码如下: #include<iostream> #include<string.h> #include<stdio.h> # ...
- ROS学习笔记(九)——ROSSERVICE
NEW 1 $ roscore NEW 2 $ rosrun turtlesim turtlesim_node NEW 3 $ rosrun turtlesim turtle_teleop_key N ...
- php-mysql结果集函数比较
本节主要介绍了获取查询结果集的4个函数,此处对它们进行综合比较. ● mysql_result():优点在于使用方便:而缺点在于功能少,一次调用只能获取结果数据集中的一行记录,对较大型的数据库 ...
- 网上下载的 java开源项目 如何 打jar包
目前很多java开源项目(例如qlexpress)只提供了源码,没有提供jar,下面提供maven打jar包的方法. 1.进入qlexpress下载后源代码所在的目录,此目录应包含pom.xml,如下 ...
- mvn创建web项目
1. 新建maven项目,选择maven骨架maven-archetype-webapp来建立web项目 2. 选择next,输入groupid:MavenWebTest, artifactid:cn ...