【前端】jQuery DataTables 使用手册(精简版)
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/5182940.html
前排提醒,这个插件能不用就不用,那么多好的插件等着你,为什么要用它呢?就算用easyui的datagrid然后自己改样式都比这强得多。
在引入easyui的css后,引入下面的css,就可以把easyui的datagrid变成bootstrap的风格了。
/*=================== easyui datagrid begin =======================*/
.datagrid-row:nth-child(odd){
background: #F0F0F0;
}
.datagrid-header td, .datagrid-body td, .datagrid-footer td{
border-style: solid;
}
.datagrid-row, .datagrid-header-row{
height : 40px;
}
.datagrid-header, .datagrid-td-rownumber{
background: #FFF;
}
.datagrid-row-over, .datagrid-header td.datagrid-header-over, .datagrid-row-over .rowbtn{
background: #3598DC !important;
color: #FFF;
}
.datagrid-view1 .datagrid-header-row td, .datagrid-view1 .datagrid-body{
border-left: 1px solid #CCC;
}
.datagrid-header, .datagrid-toolbar, .datagrid-pager, .datagrid-footer-inner{
border-color: #CCC;
}
.datagrid .datagrid-pager, .datagrid-header{
border: none;
}
.pagination-info {
margin: 0 10px 0 0;
}
.datagrid-header-row td{
border-top: 1px solid #CCC;
}
.datagrid-pager{
border: 1px solid #CCC !important;
margin: 0 18px 0 0 !important;
}
.datagrid-view2 .datagrid-body{
border-right: 1px solid #CCC;
}
.pagination{
border-radius:;
}
.datagrid-view2 .datagrid-header-row td{
cursor: pointer;
}
/*=================== easyui datagrid end =======================*/
//需要把这个回调函数放在datagrid的初始化方法里
onLoadSuccess : function(){
//解决一个样式bug
$(".borderdiv").remove();
var height = $(".datagrid-view2 .datagrid-body").outerHeight() - $(".datagrid-view2 .datagrid-btable").outerHeight();
if(height > 0){
$(".datagrid-view2 .datagrid-body").css("position", "relative").append("<div class='borderdiv'></div>");
$(".borderdiv").css({
height : height,
borderLeft : "1px solid #ccc",
position : "absolute",
right : "18px"
});
}
}

这是效果,还是很好看的。
如果你执意要用,或者项目里已经用这个没办法变了,那就看看下面的内容吧。
一、常用属性
//把公共的设置项都放在这里,就不需要每个页面都设置一遍了,放在jQuery对象上是为了避免污染全局变量
window.dataTablesSettings = {
processing : false,//是否显示加载中提示
bAutoWidth : false,//是否自动计算表格各列宽度
bPaginate : true,//是否显示使用分页
bInfo : false,//是否显示页数信息
sPaginationType : "full_numbers",//分页样式
iDisplayLength : 10,//默认每页显示多少条记录
searching : false,//是否显示搜索框
bSort : false,//是否允许排序
serverSide : true,//是否从服务器获取数据
bStateSave : true,//页面重载后保持当前页
bLengthChange : false,//是否显示每页大小的下拉框
sServerMethod : "POST",
language: {
lengthMenu : "每页显示 _MENU_记录",
zeroRecords : "没有匹配的数据",
info : "第_PAGE_页/共 _PAGES_页",
infoEmpty : "没有符合条件的记录",
search : "查找",
infoFiltered : "(从 _MAX_条记录中过滤)",
paginate : { "first" : "首页 ", "last" : "末页", "next" : "下一页", "previous" : "上一页"}
},
//这里是为ajax添加自定义参数,给它添加的属性,它会传给后台
fnServerParams : function (aoData) {
aoData._rand = Math.random();
}
};
//引用了上面的js文件后,在这里设置其他的参数
//ajax的url
window.dataTablesSettings.ajax = "/backend/content/load";
//如果表格的高度大于这个值,tbody就会出现滚动条,而表头固定
window.dataTablesSettings.sScrollY = $(window).height() - 300;//是否开启垂直滚动(否=disabled)
//设置具体的列名
window.dataTablesSettings.columns = [
{data : "id"},
{data : "title"},
{data : "sort"},
{data : "diffcity"},
{data : "citys"},
{data : "edittime"},
{data : "editer"}
];
//对列进行操作,这里只是替换掉第一列
window.dataTablesSettings.columnDefs = [{
targets : [0],
data : "id",
render : function(data, type, row) {
return "<a title='编辑' class='glyphicon glyphicon-edit nounderline' href='javascript:editTabRow(" + data + ");'></a> " +
"<a title='复制' class='glyphicon glyphicon-duplicate nounderline' href='javascript:copyTabRow(" + data + ");'></a> " +
"<a title='删除' class='glyphicon glyphicon-trash nounderline' href='javascript:deleteTabRow(" + data + ");'></a>";
}
}];
二、事件
window.dataTablesSettings.fnDrawCallback = function(data){
//每一次表格绘制完成时调用
};
window.dataTablesSettings.fnInitComplete = function(){
//表格初始化时调用一次
};
//还有其他不常用的,就不列举了
三、方法
//重绘方法。true会回到表格的初始状态,例如回到第一页,false只是重新加载当前页
dataTable.fnDraw(false);
//销毁方法。true会删除表格元素,而false不会,它只是销毁dataTable对象
dataTable.fnDestroy(false);
//换页方法,可以跳转到指定页。可选参数有"first", "previous", "next" , "last",或者是一个整数,0是第一页
dataTable.fnPageChange(0);
四、搜索案例
//这里是搜索的案例,不过自定义分页也可以这么做
$("#searchBtn").on("click", function(){
//这里是为了解决搜索条件变化后,没有点搜索按钮,而是点换页后搜索条件也变化的bug
var stitle = $("#stitle").val();
var sdiffcity = $("#sdiffcity").val();
var scity = $("#scity").val();
//这里重新设置参数
window.dataTablesSettings.fnServerParams = function (aoData) {
aoData.stitle = stitle;
aoData.sdiffcity = sdiffcity;
aoData.scity = scity;
aoData._rand = Math.random();
}
//搜索就是设置参数,然后销毁datatable重新再建一个
dataTable.fnDestroy(false);
dataTable = $("#datatable").dataTable(window.dataTablesSettings);
//搜索后跳转到第一页
dataTable.fnPageChange(0);
});
五、注意事项
//当window尺寸改变时触发,以解决dataTable表头不自动适应的问题
//resize和scroll事件一定要优化
window.resizeWaiter = false;
$(window).resize(function() {
if(!window.resizeWaiter){
window.resizeWaiter = true;
setTimeout(function(){
window.dataTable && window.dataTable.fnDraw(false);
window.resizeWaiter = false;
}, 500);
}
});
//在删除的ajax的success方法里需要这么写,如果当前页只有一条数据,删除后跳转到前一页
start = $("#datatable").dataTable().fnSettings()._iDisplayStart;
total = $("#datatable").dataTable().fnSettings().fnRecordsDisplay();
dataTable.fnDraw(false);
if ((total - start) == 1) {
if (start > 0) {
$("#datatable").dataTable().fnPageChange("previous", true);
}
}
【前端】jQuery DataTables 使用手册(精简版)的更多相关文章
- jQuery返回顶部(精简版)
jQuery返回顶部(精简版) <!DOCTYPE html><html lang="en"><head> <meta charset=& ...
- jQuery DataTables 使用手册(精简版)
转载请注明出处:http://www.cnblogs.com/shamoyuu/p/5182940.html 前排提醒,这个插件能不用就不用,那么多好的插件等着你,为什么要用它呢?就算用easyui的 ...
- emacs org-mode 中文手册精简版(纯小白)
一只小白看了大佬的讲解视频结合其他大佬给整理的笔记再结合emacs 官方英文手册,觉得自己的知识好像增加了. 当时自己在全网搜索的时候没有看到那种纯小白的手册,本小白就写了这个,就当奉献社会了.若有不 ...
- [jQuery]jQuery DataTables插件自定义Ajax分页实现
前言 昨天在博客园的博问上帮一位园友解决了一个问题,我觉得有必要记录一下,万一有人也遇上了呢. 问题描述 园友是做前端的,产品经理要求他使用jQuery DataTables插件显示一个列表,要实现分 ...
- ASP.NET MVC+EF在服务端分页使用jqGrid以及jquery Datatables的注意事项
引言: 本人想自己个博客网站出来,技术路线是用ASN.NET MVC5+EF6(Code First)+ZUI+各种Jquery插件,有了这个想法之后就开始选择UI,看了好多bootstrap的模板之 ...
- Orchard 精简版
Orchard Express v1.7.2 精简版 保留Orchard.Framework和Orchard.Core全部源码(一字未改),去除非必要模块(仅剩Orchard.jQuery, Orch ...
- 用 JS 点击左右按钮 使图片切换 - 最精简版-ljx2380000-ChinaUnix博客
body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...
- jquery.dataTables的用法
写页面前端时,使用表格的插件可以快速漂亮的排版.本例子中使用jquery.dataTables来处理table.直接来点干货 html代码如下 <table cellpadding=" ...
- JQuery DataTables学习
1.Datatables简单介绍 DataTables是一个jQuery的表格插件.这是一个高度灵活的工具,根据的基础逐步增强,这将添加先进的互动控制.支持不论什么HTML表格. 主要特点: 自己主动 ...
随机推荐
- Spring Security 表单登录
1. 简介 本文将重点介绍使用Spring Security登录. 本文将构建在之前简单的Spring MVC示例之上,因为这是设置Web应用程序和登录机制的必不可少的. 2. Maven 依赖 要将 ...
- 吐血整理:PyTorch项目代码与资源列表 | 资源下载
http://www.sohu.com/a/164171974_741733 本文收集了大量基于 PyTorch 实现的代码链接,其中有适用于深度学习新手的“入门指导系列”,也有适用于老司机的论文 ...
- 深入浅出Attribute (一)
正文: 什么是Attribute?Attribute是干什么使的?Attribute与Property到底有什么区别?…… 长久以来,这些问题一直困扰着并不怎么广大的C#初学者.原因大概有两个,一是A ...
- Java异常 - Exception总结
这篇blog总结的比较详细了. 如下图所示,在Java中所有异常的基类均为Throwable类.有两个子类,分别为Exception和Error.其中Error主要由JVM处理,比如OutOfMemo ...
- 必会必知git
git必会必知 1 前言 git前身是BitKeeper,但是他不是开源软件,不符合当时开源趋势,于是就会有了开源的git,git开发只用了十天时间.目前git是公司开发必不可少的一个工具,用于多 ...
- ant 可自动替换友盟渠道、版本号、包名
可自动替换友盟渠道.版本号.包名 如何集成到我的项目里 前提:了解android官方文档,在项目目录中执行ant debug能打包,比如常见的打包步骤: android update project ...
- 《Programming WPF》翻译 第4章 5.主从复合(Master-Detail)绑定
我们已经看到绑定一个单独的对象,还看到绑定一个单独的对象列表.另一种非常流行的方式是绑定多个对象列表,尤其是相关的列表.例如,如果你向用户显示一个客户列表,当他们选中其中一个客户,就会显示客户的相关订 ...
- <转> Struct 和 Union区别 以及 对内存对齐方式的说明
转载地址:http://blog.csdn.net/firefly_2002/article/details/7954458 一.Struct 和 Union有下列区别: 1.在存储多个成员信息时,编 ...
- 使用jQuery Ajax功能的时候需要注意的一个问题
每次jquery的Ajax请求都会创建一个xmlHttprequest对象,理论上讲,长连接(页面需要和服务器保持长连接,而且在连接超时后需要重新请求连接)的请求是一个无限递归,请求数量是非常大的,但 ...
- asp.net mvc 中"未找到路径“/favicon.ico”的控制器或该控制器未实现 IController。"
FavIcon.ico是一个特殊的文件,它是浏览器请求一个网站时出现的.某些浏览器在书签和收藏夹中使用这个图标.在与这些图标相关的网站被打开时,某些浏览器也在标题栏或浏览器标签中中显示这个图标. 当一 ...