Datatable学习笔记——install and options

1.安装

需引入三个文件,即jQuery库,一个DT的核心js文件和一个DT的css文件,注意jQuery库的引用在DT的js文件之前。
官网参考文档 http://datatables.club/manual/install.html

<!-- 引入jQuery -->
<script src="js/jquery-1.11.2.min.js"></script>
<!-- Datables引入文件 -->
<link href="css/jquery.dataTables.css" rel="stylesheet">
<script src="js/jquery.dataTables.js"></script>
<!-- 添加Table -->
<table id="sample_1">    
  <thead>       
    <tr>           
      <th>Name</th>            
      <th>age</th>        
    </tr>    
  </thead>    
  <tr>        
    <td>Joe</td>        
    <td>18</td>    
  </tr>    
  <tr>        
    <td>Grace</td>        
    <td>16</td>    
  </tr>
</table>
<script>   
   var mytable = $('#sample_1').DataTable();
</script>

若需要应用bootstrap到datatables则可以引入datatable中bootstrap相关的css文件和js文件,顺序为bootstrap.css、dataTables.bootstrap.css、jQuery.js、jquery.dataTables.js、dataTables.bootstrap.js

<link href="css/bootstrap.min.css" rel="stylesheet">
<script src="js/jquery-1.11.2.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<!-- Datables引入文件 -->
<link href="css/dataTables.bootstrap.css" rel="stylesheet">
<script src="js/jquery.dataTables.js"></script>
<script src="js/dataTables.bootstrap.js"></script>

2.配置

var sampleTable2 = $('#sample_2').DataTable({
            "lengthMenu": [5, 10, 20, 40],//定义在每页显示记录数的select中显示的选项
            "searching": true,//是否禁用搜索
            "lengthChange": true,//是否允许用户改变表格每页显示的记录数
            "paging": true,//开启表格分页
            "processing": true,//是否显示处理状态(排序的时候,数据很多耗费时间长的话,也会显示这个)
            "autoWidth": false,//是否自适应宽度
            "deferRender": true,//延迟渲染,可以提高初始化的速度
            "stateSave": true, //保存状态 - 在页面重新加载的时候恢复状态(页码等内容,如在第三页刷新页面,会自动到第一页
            "dom": '<l<\'#topPlugin\'>f>rt<ip><"clear">',//定义DataTables的组件元素的显示和显示顺序
            "ordering": true,//全局禁用排序
            "serverSide":false,//是否开启服务器模式
            "ajax": {
                "url": "data/objects_root_array.txt", //从一个ajax数据源读取数据给表格内容
                "dataSrc": "" //数据属性或操作表数据的方法
            },
            columns: [{
                "data": "name",
                "orderable": true, // 启用排序
                "defaultContent": "",
                "width": "10%"

            }, {
                "data": "position",
                "orderable": true, // 启用排序
                "defaultContent": "",
                "width": "10%"

            }, {
                "data": "office",
                "orderable": false, // 禁用排序
                "defaultContent": "",
                "width": "10%"

            }, {
                "data": "extn",
                "orderable": false, // 禁用排序
                "defaultContent": "",
                "width": "5%"

            }, {
                "data": "salary",
                "orderable": false, // 禁用排序
                "defaultContent": "",
                "width": "10%"

            }, {
                "data": "start_date",
                "orderable": false, // 禁用排序
                "defaultContent": "",
                "width": "10%"

            }
            ],
            "oLanguage": { // 国际化配置
                "sProcessing": "正在获取数据,请稍后...",
                "sLengthMenu": "显示 _MENU_ 条",
                "sZeroRecords": "没有找到数据",
                "sInfo": "从 _START_ 到  _END_ 条记录 总记录数为 _TOTAL_ 条",
                "sInfoEmpty": "记录数为0",
                "sInfoFiltered": "(全部记录数 _MAX_ 条)",
                "sInfoPostFix": "",
                "sSearch": "搜索",
                "sUrl": "",
                "oPaginate": {
                    "sFirst": "第一页",
                    "sPrevious": "上一页",
                    "sNext": "下一页",
                    "sLast": "最后一页"
                }
            }

        });
  1. l 代表 length,左上角的改变每页显示条数控件
  1. f 代表 filtering,右上角的过滤搜索框控件
  2. t 代表 table,表格本身
  3. i 代表 info,左下角的表格信息显示控件
  4. p 代表 pagination,右下角的分页控件
  5. r 代表 processing,表格中间的数据加载等待提示框控件
  6. B 代表 button,Datatables可以提供的按钮控件,默认显示在左上角

dom的默认值为lfrtip,因此默认效果如下:

datatables默认的dom效果

若只是想改变现有控件的位置,可以直接重新组合lfrtip的顺序,但如果要对其做更灵活的排列或者要在现有的基础上增加一些元素,如常见的增加一些按钮,则需要通过以下方式:

  • < > - div elements 代表一个div元素 <div><div>
  • <"#id" > - div with an id 指定了id的div元素 <div id='id'><div>
  • <"class" > - div with a class 指定了样式名的div元素 <div class='class'><div>
  • <"#id.class" > - div with an id and class 指定了id和样式的div元素 <div id='id' class='class'><div>

"dom": '<"wrapper"flipt>',则datatables初始化后的结构如下:

<div class="wrapper">
      {filter}
      {length}
      {information}
      {pagination}
      {table}
    </div>

"dom": '<"top"i>rt<"bottom"flp><"clear">',则datatables初始化后的结构如下:

<div class="top">
      {information}
    </div>
    {processing}
    {table}
    <div class="bottom">
      {filter}
      {length}
      {pagination}
    </div>
    <div class="clear"></div>

若要在表格上面添加button,可以将dom的值赋为"dom": '<l<\'#topPlugin\'>f>rt<ip><"clear">',然后在配置中加“initComplete”:initButton,initButton是一个函数,实现这个函数在其中添加button,如

function initButton(data) {
                var topPlugin = '<button class="btn btn-primary btn-sm float-r"><i class="fa fa-plus"></i> 新 增</button>';
                $("#topPlugin").append(topPlugin);//在表格上方topPlugin DIV中追加HTML
            }
  • 默认配置(Setting defaults)
    默认配置修改后会应用到所有的表格中,但优先级会低于进行表格初始化时传入的配置参数。
    使用以下方法修改默认配置:
//配置DataTables默认参数
 $.extend(true, $.fn.dataTable.defaults, {
 "language": {
 "url": "/assets/Chinese.txt"
 },
 "dom": "<'row'<'col-md-6'l<'#toolbar'>><'col-md-6'f>r>" +
 "t" +
 "<'row'<'col-md-5 sm-center'i><'col-md-7 text-right sm-center'p>>"
 });
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容