jQuery表格插件datatables用法详解

jQuery表格插件datatables用法详解

本文主要介绍jQuery表格插件数据表的用法,包括分页、排序等功能,属于jQuery表格插件数据表基础知识的一部分。有需要的朋友可以参考一下。

一、Datatables简介

DataTables是jQuery的一个表格插件。这是一个高度灵活的工具,基础逐渐加强,会加入高级交互控件,支持任何HTML表单。主要特点:

自动分页处理

即时表格数据过滤

数据分类和数据类型的自动检测

自动处理列宽

可以通过CSS自定义样式

支撑柱

使用方便

可扩展性和灵活性

国际化

动态表格创建

免费/免费

二、如何使用

后台没有美工和前端工程师配合你做页面。为了显示数据并具有一定的美感,我们可以使用jQuery的DataTables插件来帮助我们完成任务。

1、DataTables的默认配置

$(文档)。ready(function() {

$(#example )。dataTable();

} );

2、DataTables的一些基础属性配置

BPaginate: true,//翻页函数

Blend change: true,//更改每页显示的数据量

BFilter: true,//过滤函数

BSort: false,//排序函数

BInfo: true,//页脚信息

BAutoWidth: true//自动宽度

3、数据排序

$(文档)。ready(function() {

$(#example )。数据表({

aaSorting: [

[ 4,《desc》]

]

} );

} );

从第0列开始,按与第4列相反的顺序排列。

4、隐藏某些列

$(文档)。ready(function() {

$(#example )。数据表({

aoColumnDefs: [

{ bSearchable: false, bVisible: false, at targets :[2]},

{ bVisible: false, at targets :[3]}

] } );

} );

5、国际化

$(文档)。ready(function() {

$(#example )。数据表({

奥兰语言:{

SLengthMenu :每页显示_菜单_记录,

SZeroRecords :对不起,找不到,

SInfo : from _ START _ to _ END _/total _ pieces of data ,

SInfoEmpty :无数据,

SInfoFiltered :(从_MAX_ pieces个数据中检索),

不透明:

SFirst :主页,

跨页:上一页,

SNext :下一页,

最后一页:最后一页

},

SZeroRecords :未检索到任何数据,

存储处理“:”img src=“。/loading.gif /

}

} );

} );

6、排序功能:

$(文档)。ready(function() {

$(#example )。数据表({

aoColumns: [

空,

{ 分类:[ asc ] },

{ 分类:[ desc , asc , asc ] },

{ 分类:[ ] },

{ 分类:[ ] }

]

} );

} );

7、数据获取支持4种:如下

DOM数据

Javascript数组JS数组

Ajax源Ajax请求数据

?Server side processing 服务器端数据

三、实例讲解

1.需求:如下图所示,增加、编辑、删除数据表的内容。

2.解析:添加功能——点击添加按钮,弹出对话框,添加新内容。

编辑功能-点击数据表选择一行,该行改变颜色,即被选中。点击编辑按钮,将弹出对话框。此对话框中的内容是我们所选行的内容。如果没有选中行,点击编辑按钮,对话框不会弹出。双击数据表中的一行时,对话框也会弹出,双击的行会改变颜色。对话框中的内容是双击行的内容。

删除功能-点击数据表选中一行,点击删除按钮,会弹出一个警告框,提示是否删除选中的内容。当什么都不选时,点击删除按钮,不会弹出警告框,内容不会被删除。

3.编码:

属性//名称

table id= grid table class= grid table //Declare jquery数据表

四羟乙基己二酰胺

tr

thName

/th

thValue

/th

thDisplayOrder

/th

/tr

/thead

tbody

.//datatables内容,此处省略。

/tbody

/表格

type= button id= Add value= Add //添加一个按钮

type= button id= edit value= edit //edit按钮

type= button id= Delete value= Delete //Delete按钮

Div id=e_Attributes//Declare对话框,异步更新

@使用(Ajax。BeginForm(Update , Product ,新Ajax选项

{

UpdateTargetId=d_Attributes ,

OnSuccess=dialogClose ,

HttpMethod=Post ,

}))

{

桌子

tbody

tr

td名称/td

(美)财政部(Treasury Department)

输入id= Name Name= Name type= text style= width:250 px class= required /*/TD

/tr

tr

(美)财政部(Treasury Department)值/td

(美)财政部(财政部)

输入id= Value name= Value type= text style= width:250 px class= required /*/TD

/tr

tr

tdDisplayOrder/td

(美)财政部(财政部)

输入id=显示顺序 name=显示顺序 type= text style= width:128 px class= required /*/TD

/tr

tr

(美)财政部(财政部)

输入id=提交类型=提交名称=提交值=提交/

输入id=隐藏值 type=隐藏 name=隐藏值/

/td

/tr

/tbody

/表格

}

/div

上面代码说明:这段代码主要分了两个部分,第一部分是jquery数据表的声明,表id=网格表 class=网格表;第二部分是对话的声明,以及操作所需要的行动,此部分的操作选择创建交互式、快速动态网页应用的网页开发技术无刷新页面技术。所需射流研究…的代码:

脚本类型=文本/javascript

函数dialogClose() {

$(#e_Attributes ).对话框("关闭");

}

$(#e_Attributes ).对话框({

模态:真的,

autoOpen: false,

显示:{

效果:"失明",

持续时间:1000

},

隐藏:{

效果:"爆炸",

持续时间:1000

},

宽度:400

});

定义变量编辑器;

$(function () {

//声明数据表

$(#gridtable ).数据表()。fn destroy();

editor=$(#gridtable ).数据表({

bInfo:false,

bServerSide: false,

bPaginate: false,//是否分页。

bProcessing: false,//当数据表获取数据时候是否显示正在处理提示信息。

bFilter: false,//是否使用内置的过滤功能。

bLengthChange: false,//是否允许用户自定义每页显示条数。

sPaginationType: full_numbers ,//分页样式

});

//单击,赋值,改样式

$(#gridtable tbody tr ).点击(功能(e) {

如果($(这个)。具有类( row _ selected ){

$(这个)。移除类(“row _ selected”);

putNullValue()

}

否则{

编辑$ 0.001( tr . row _ selected ).移除类(“row _ selected”);

$(这个)。添加类( row _ selected );

var aData=editor。fngetdata(this);

if (null!=aData) {

put value(aData);

}

}

});

//双击

$(#gridtable tbody tr ).dblclick(function () {

如果($(这个)。具有类( row _ selected ){

//$(这个)。移除类(“row _ selected”);

}

否则{

编辑$ 0.001( tr . row _ selected ).移除类(“row _ selected”);

$(这个)。添加类( row _ selected );

}

var aData=editor。fngetdata(this);

if (null!=aData) {

put value(aData);

}

$(#hiddenValue ).瓦尔(“编辑");

$(#e_Attributes ).对话框("打开");

});

//添加

$(#add ).单击(函数(){

编辑$ 0.001( tr . row _ selected ).移除类(“row _ selected”);

putNullValue();

$(#hiddenValue ).val( add );

$(#e_Attributes ).对话框("打开");

});

//编辑

$(#edit ).单击(函数(){

var产品属性id=$( #产品属性id ).val();

if (productAttributeID!= productAttributeID!=null) {

$(#hiddenValue ).瓦尔(“编辑");

$(#e_Attributes ).对话框("打开");

}

});

//删除

$(#delete ).单击(函数(){

var产品属性id=$( #产品属性id ).val();

var productID=$(#productID ).val();

if (productAttributeID!=null productAttributeID!=) {

如果(确认(删除?)) {

$.ajax({

键入:获取,

网址:"@网址。操作( DeleteAttribute , Product ),

数据:{ ProductID: productID,产品属性ID:产品属性id },//参数名要和行动中的参数名相同

数据类型:“html”,

缓存:假,

成功:功能(结果){

$(#d_Attributes ).html(结果);

$(#productAttributeID ).瓦尔(空);

}

});

}

}

});

//赋空值,并去除输入验证错误样式(此样式不管有无,均可去除,所以不用判断了)

函数putNullValue() {。//此处省略

}

//赋值

函数putValue(aData) {。//此处省略

}

});

$.Ajax设置({ cache:false });

/脚本

上面代码说明:这段代码分别为对话的声明,数据表的声明以添加、编辑、删除的操作。

添加功能效果图

编辑功能效果图:

删除效果图:

到目前为止,所有的功能都已实现,所需代码也已发布。

4.分页实现

介绍CSS文件和JS文件

style type= text/CSS title= current style

@ import DataTables-1 . 8 . 1/media/CSS/demo _ page . CSS ;

@ import DataTables-1 . 8 . 1/media/CSS/demo _ table . CSS ;

@ import DataTables-1 . 8 . 1/media/CSS/demo _ table _ Jui . CSS ;

/风格

脚本类型=text/javascript 语言=javascript src=数据表-1 . 8 . 1/media/js/jquery . js /script

脚本类型=text/javascript 语言= JavaScript src= DataTables-1 . 8 . 1/media/js/jquery . DataTables . js /script

-

-最简单的方法:

$(文档)。ready(function() {

$(#example )。dataTable();

});

-您也可以自己定义属性:

脚本类型=文本/javascript 语言=javascript

$(文档)。ready(function() {

$(#example )。数据表({

//bPaginate: true,//switch,是否显示分页器。

//bInfo: true,//switch,是否显示表格的某些信息。

//bFilter: true,//switch,是否启用客户端过滤?

//sDom: lfrtip ,

//bAutoWith: false,

//bDeferRender: false,

//bJQueryUI: false,//switch,是否启用JQueryUI样式?

//blend change: true,//switch,是否显示每个页面大小的下拉框。

//bProcessing: true,

//bScrollInfinite: false,

//s scroll: 800px ,//是否开启垂直滚动,并指定滚动区域的大小,可以设置为 disabled , 2000px

//bSort: true,//switch,是否启用按列排序的功能?

//吸收类:true,

//bStateSave: false,//开关,是否开启客户端状态记录功能。这些数据被记录在cookies中。该记录打开后,即使页面刷新一次或者浏览器重新打开,也保存以前的状态——当值为true时,aoColumnDefs不能隐藏列。

//sScrollX: 50% ,//是否开启水平滚动,并指定滚动区域的大小,可以设置为禁用, 2000%

//aaSorting: [[0, asc]],

// aocolumndefs :[{ bvisible :false, at argets :[0]}]//隐藏列

// sDom : H ift f if ,

BAutoWidth: false,//自适应宽度

aaSorting: [[1, asc]],

sPaginationType: full_numbers ,

奥兰语言:{

正在处理“:”正在加载.

SLengthMenu :每页显示_菜单_记录,

SZeroRecords :对不起,找不到相关数据!

SEmptyTable :表中没有数据!

SInfo :目前在_TOTAL_中有_START_ to _END_条记录,

SInfoFiltered :数据表中有_MAX_ records ,

SSearch :搜索,

不透明:

SFirst :主页,

传播:以前,

SNext :下一页,

最后一页:最后一页

}

}//多语言配置

});

});

/脚本

对于数据表,表必须由ad和tbody解释,如下所示

表格cell padding= 0 cellspacing= 0 border= 0 class= display id= example

四羟乙基己二酰胺

tr

泰国(Thailand)

渲染引擎

/th

泰国(Thailand)

浏览器

/th

泰国(Thailand)

平台

/th

泰国(Thailand)

引擎版本

/th

泰国(Thailand)

CSS等级

/th

/tr

/thead

tbody

奇数级

(美)财政部(Treasury Department)

三叉戟

/td

(美)财政部(Treasury Department)

Internet Explorer 4.0

/td

(美)财政部(Treasury Department)

Win 95

/td

td class=center

/td

td class=center

X

/td

/tr

如果没有thead,将会报告一个错误。

Bpinate:是否分页,默认为true,分页。

IDisplayLength:每页的行数,默认为每页10行。

SPaginationType:分页样式,支持两个内置方法two_button和full_numbers。默认情况下,使用two_button。

BLengthChange:是否允许用户通过下拉列表选择分页后每页的行数。行数为10、25、50、100。此设置需要bPaginate支持。默认值为true。

BFilter:启用或禁用数据过滤,默认为真。注意,如果您使用了过滤功能,但是想要关闭默认的过滤输入框,那么您应该使用sDom。

BInfo:允许或禁止显示表格信息;默认值为true,表示显示信息。

最简单的使用方法是零配置。

/*

*初始化示例

*/

$(文档)。ready(function(){

$(#example )。dataTable();

});

以上是jQuery表格插件datatables用法的详细介绍,希望对大家的学习有所帮助。

jQuery表格插件datatables用法详解