DataTables四种数据源

本文详细介绍DataTables插件的使用方法,包括HTML数据源、Ajax数据源、JavaScript数据源及服务器端数据源等不同数据源的应用场景及配置方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 DataTables是一款非常简单的前端表格展示插件,它支持排序,翻页,搜索以及在客户端和服务端分页等多种功能。官方介绍:

DataTables is a plug-in for the jQuery Javascript library. It is a highly flexible tool, based upon the foundations of progressive enhancement, and will add advanced interaction controls to any HTML table.

它的数据源有很多种:主要有HTML (DOM)数据源,Ajax数据源,JavaScript数据源以及服务器端数据源。这里分别介绍一下这四种数据源的使用。

  首先需要在你的html代码引入以下的js和css文件:jquery-1.11.1.min.js、jquery.dataTables.min.js以及jquery.dataTables.css。

一、HTML (DOM) sourced data

  HTML表格数据如下:

< table id = "example" class = "display" cellspacing = "0" width = "100%" >
         < thead >
             < tr >
                 < th >Name</ th >
                 < th >Position</ th >
                 < th >Office</ th >
                 < th >Age</ th >
                 < th >Start date</ th >
                 < th >Salary</ th >
             </ tr >
         </ thead >
 
         < tbody >
             < tr >
                 < td >Tiger Nixon</ td >
                 < td >System Architect</ td >
                 < td >Edinburgh</ td >
                 < td >61</ td >
                 < td >2011/04/25</ td >
                 < td >$320,800</ td >
             </ tr >
             < tr >
                 < td >Garrett Winters</ td >
                 < td >Accountant</ td >
                 < td >Tokyo</ td >
                 < td >63</ td >
                 < td >2011/07/25</ td >
                 < td >$170,750</ td >
             </ tr >
    </ tbody >
</ table >

然后加入JavaScript代码:

$(document).ready( function () {
     $( '#example' ).dataTable();
} );

Show 102550100 entries
Search:
NamePositionOfficeAgeStart dateSalary
NamePositionOfficeAgeStart dateSalary
Airi SatouAccountantTokyo332008/11/28$162,700
Ashton CoxJunior Technical AuthorSan Francisco662009/01/12$86,000
Brielle WilliamsonIntegration SpecialistNew York612012/12/02$372,000
Cedric KellySenior Javascript DeveloperEdinburgh222012/03/29$433,060
Colleen HurstJavascript DeveloperSan Francisco392009/09/15$205,500
Garrett WintersAccountantTokyo632011/07/25$170,750
Herrod ChandlerSales AssistantSan Francisco592012/08/06$137,500
Jena GainesOffice ManagerLondon302008/12/19$90,560
Rhona DavidsonIntegration SpecialistTokyo552010/10/14$327,900
Sonya FrostSoftware EngineerEdinburgh232008/12/13$103,600
Showing 1 to 10 of 11 entries

二、Ajax sourced data

  Datatable可以解析来自Ajax的Json数据:
HTML代码如下:

< table id = "example1" class = "display" cellspacing = "0" width = "100%" >
         < thead >
             < tr >
                 < th >Name</ th >
                 < th >Position</ th >
                 < th >Office</ th >
                 < th >Extn.</ th >
                 < th >Start date</ th >
                 < th >Salary</ th >
             </ tr >
         </ thead >
  
         < tfoot >
             < tr >
                 < th >Name</ th >
                 < th >Position</ th >
                 < th >Office</ th >
                 < th >Extn.</ th >
                 < th >Start date</ th >
                 < th >Salary</ th >
             </ tr >
         </ tfoot >
</ table >

JavaScript代码:

$(document).ready( function () {
     $( '#example1' ).dataTable( {
         "ajax" : '/wp-content/themes/yusi2.0/dataTable/arrays.txt'
     } );
} );
Show 102550100 entries
Search:
NamePositionOfficeExtn.Start dateSalary
NamePositionOfficeExtn.Start dateSalary
Airi SatouAccountantTokyo54072008/11/28$162,700
Ashton CoxJunior Technical AuthorSan Francisco15622009/01/12$86,000
Brielle WilliamsonIntegration SpecialistNew York48042012/12/02$372,000
Cedric KellySenior Javascript DeveloperEdinburgh62242012/03/29$433,060
Colleen HurstJavascript DeveloperSan Francisco23602009/09/15$205,500
Garrett WintersAccountantTokyo84222011/07/25$170,750
Herrod ChandlerSales AssistantSan Francisco96082012/08/06$137,500
Jena GainesOffice ManagerLondon38142008/12/19$90,560
Rhona DavidsonIntegration SpecialistTokyo62002010/10/14$327,900
Sonya FrostSoftware EngineerEdinburgh16672008/12/13$103,600
Showing 1 to 10 of 11 entries

三、Javascript sourced data

  在很多时候,我们的数据都是动态生成的,dataTable支持读取和解析JavaScript 中的数组。我们只需要将 JavaScript 数组传递给dataTable的data属性即可。
JavaScript代码:

<table cellpadding= "0" cellspacing= "0" border= "0" class= "display" id= "example2" ></table>
var dataSet = [
     [ 'Trident' , 'Internet Explorer 4.0' , 'Win 95+' , '4' , 'X' ],
     [ 'Trident' , 'Internet Explorer 5.0' , 'Win 95+' , '5' , 'C' ],
     [ 'Trident' , 'Internet Explorer 5.5' , 'Win 95+' , '5.5' , 'A' ],
     [ 'Trident' , 'Internet Explorer 6' , 'Win 98+' , '6' , 'A' ],
     [ 'Trident' , 'Internet Explorer 7' , 'Win XP SP2+' , '7' , 'A' ],
     [ 'Trident' , 'AOL browser (AOL desktop)' , 'Win XP' , '6' , 'A' ],
     [ 'Gecko' , 'Firefox 1.0' , 'Win 98+ / OSX.2+' , '1.7' , 'A' ],
     [ 'Gecko' , 'Firefox 1.5' , 'Win 98+ / OSX.2+' , '1.8' , 'A' ],
     [ 'Gecko' , 'Firefox 2.0' , 'Win 98+ / OSX.2+' , '1.8' , 'A' ],
     [ 'Gecko' , 'Firefox 3.0' , 'Win 2k+ / OSX.3+' , '1.9' , 'A' ],
     [ 'Gecko' , 'Camino 1.0' , 'OSX.2+' , '1.8' , 'A' ],
];
 
$(document).ready( function () {
     $( '#example2' ).dataTable( {
         "data" : dataSet,
         "columns" : [
             { "title" : "Engine" },
             { "title" : "Browser" },
             { "title" : "Platform" },
             { "title" : "Version" , "class" : "center" },
             { "title" : "Grade" , "class" : "center" }
         ]
     } );  
} );

四、Server-side processing

  这种是最常见的数据来源,我们在服务器端生成需要的数据(一般都是Json格式的),然后返回给前端。而且这种情况我们可以利用dataTable的服务器端翻页。JavaScript代码:如下:
HTML代码如下:

< table id = "example" class = "display" cellspacing = "0" width = "100%" >
         < thead >
             < tr >
                 < th >Name</ th >
                 < th >Position</ th >
                 < th >Office</ th >
                 < th >Extn.</ th >
                 < th >Start date</ th >
                 < th >Salary</ th >
             </ tr >
         </ thead >
  
         < tfoot >
             < tr >
                 < th >Name</ th >
                 < th >Position</ th >
                 < th >Office</ th >
                 < th >Extn.</ th >
                 < th >Start date</ th >
                 < th >Salary</ th >
             </ tr >
         </ tfoot >
     </ table >

$(document).ready( function () {
     $( '#example' ).dataTable( {
         "processing" : true ,
         "serverSide" : true ,
         "ajax" : "../processing.php"
     } );
} );

转自:https://www.iteblog.com/archives/1257.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值