DataTable 选项说明

  • 特性

    • jQueryUI:true/false:控制是否使用jqueryUI样式,需要引入jQueryUI的CSS
    • autoWidth:true/false:控制Datatables是否自适应宽度,建议宽度可以确定的时候尽量自行确定,自适应宽度会导致表格加载速度变慢
    • info:true/false:控制是否显示表格左下角的信息
    • lengthChange:true/false:是否允许用户改变表格每页显示的记录数
    • ordering:true/false:是否允许Datatables开启排序
    • paging:true/false:是否开启本地分页
    • processing:true/false:是否显示处理状态(排序的时候,数据很多耗费时间长的话,也会显示这个)
    • scrollX:数值:设置水平滚动
    • scrollY:数值:设置垂直滚动
    • scrollCollapse:true/false:是否开启垂直滚动条
    • serverSide:true/false:是否开启服务器模式
    • deferRender:true/false:d控制Datatables的延迟渲染,可以提高初始化的速度
  • 数据

    • ajax:异步数据:增加或修改通过Ajax提交到服务端的请求数据

      如果当做一个对象

    • data:本地数据:用来显示表格的数据

      data的数据可以是二维数组,也可以是对象数组

      • 二维数组

                       $('#example').dataTable( {
        "data": [
        [ "Tiger Nixon", "System Architect", "$3,120", "2011/04/25", "Edinburgh", 5421 ],
        [ "Garrett Winters", "Director", "$8,422", "2011/07/25", "Edinburgh", 8422 ],
        // ...
        ]
        } );
      • 对象数组
                       $('#example').dataTable( {
        "data": [
        {
        "name": "Tiger Nixon",
        "position": "System Architect",
        "salary": "$3,120",
        "start_date": "2011/04/25",
        "office": "Edinburgh",
        "extn": 5421
        },
        {
        "name": "Garrett Winters",
        "position": "Director",
        "salary": "5300",
        "start_date": "2011/07/25",
        "office": "Edinburgh",
        "extn": "8422"
        },
        // ...
        ],
        "columns": [
        { "data": "name" },
        { "data": "position" },
        { "data": "office" },
        { "data": "extn" },
        { "data": "start_date" },
        { "data": "salary" }
        ]
        } );
  • 配置

    • deferLoading:Integer/Array:延迟请求加载服务端的数据,直到表格第二次绘制

      当给定一个整数,表示延迟加载,并且告诉DT有多少条数据在完整的结果集里

      $('#example').DataTable( {
      "serverSide": true,
      "ajax": "scripts/server_processing.php",//表格中总共显示57条记录
      "deferLoading": 57
      } );

      当给定一个数组,也表示延迟加载,第一个元素表示告诉dataTable多有少过滤后的记录数,第二个元素表示告诉DT总共有多少记录

      $('#example').dataTable( {
      "serverSide": true,
      "ajax": "scripts/server_processing.php",
      "deferLoading": [ 57, 100 ],//过滤后57条记录,100条不过滤
      "search": {
      "search": "my_filter"
      }
      } );
    • destroy:true/false:初始化一个新的Datatables,如果已经存在,则销毁(配置和数据),成为一个全新的Datatables实例
                    $('#example').dataTable({
      "srollY": "200px"
      });
      // 先用上面的初始化Datatables,然后在用下面的初始化Datatables,滚动条会消失
      $('#example').dataTable({
      "filter": false,
      "destroy": true
      });
    • displayStart:数值:初始化显示的时候从第几条数据开始显示(一开始显示第几页)
    • lengthMenu:数组:定义在每页显示记录数的select中显示的选项
                   $('#example').DataTable( {
      "lengthMenu": [ 10, 25, 50, 75, 100 ]
      } );
    • orderCellsTop :true/false/default/:允许控制 DataTables 唯一的单元格来找到单个的列附加默认的排序监听器。 这个在复杂表头的应用中非常有用
    • orderClasses :true/false:高亮显示表格中排序的列

      需要注意的是,特别是在低版本的浏览器下,一页显示很多数据,然后需要操作大批量的dom元素,这个特性会影响性能。 因此,当你使用的是低版本的浏览器或者有大量数据的时候,你可以使用这个选项来关闭此特性。

    • pageLength :数值: 改变初始化页长度
    • orderMulti :true/false: 多列排序控制

      当排序功能( ordering为true )打开的时候,DataTables 默认是允许用户按住shift点击表头,多列排序。 虽然这个操作对用户来说是比较有用的,但同时也增加了表格处理数据的时间。因此,可以通过此选项来关闭多列排序的功能。

    • order : [[列索引, 'asc'],[列索引, 'desc'],.......]: 表格在初始化的时候的排序
    • renderer :特定字符串: 显示组件渲染器类型

      DataTables提供了扩展的能力,DataTables提供集成选项来支持目前几种流行的CSS框架,比如 Bootstrap ,Foundation 和 jQuery UI。

      此参数可以告诉 DataTables 使用那种渲染器,前提是指定的渲染器是已经存在的,否则使用默认的渲染器。可以通过插件添加其他渲染器。

      DataTables当前支持两种不同渲染器类型:

      • header头单元格渲染器
      • pageButton 分页按钮
                   $('#example').DataTable( {
      renderer: "bootstrap"
      } );
      $('#example').DataTable( {
      renderer: {
      "header": "jqueryui",
      "pageButton": "bootstrap"
      }
      } );
    • rowId :数值: 给每行(tr)自动绑定上唯一id

      示例数据

                  {
      data:[
      {"id":341,"name":"张三","DT_RowId":341},
      {"id":"a","name":"李四","DT_RowId":"a"}
      ]
      } $('#myTable').DataTable( {
      ajax: '/api/staff'
      rowId: 'id'
      } );

      最后效果

                  <tr id="341">
      <td>341</td>
      <td>张三</td>
      </tr>
      <tr id="a">
      <td>a</td>
      <td>李四</td>
      </tr>
    • scrollCollapse :true/false:当显示更少的记录时,是否允许表格减少高度
    • pagingType :特定字符串: 改变分页按钮显示样式

      DataTables默认情况下会在表格下面显示一个分页控件(可以使用dom选项和额外的css更改其位置),用户可以使用这个导航按钮来操作表格翻页。

      • number只显示数字
      • simple只有上一页和下一页两个按钮
      • simple_numbers上一页和下一页两个按钮,加上页数按钮
      • full首页,尾页,上一页和下一页四个按钮
      • full_numbers首页,尾页,上一页和下一页四个按钮,加上数字按钮
      • first_last_numbers首页,尾页两个按钮,加上数字按钮
    • stripeClasses :特定字符串数组:给表格行设置条纹样式

      默认情况下,Datatables就已经把行和行区分开了,使用的是 $.fn.dataTable.ext.classes.stripe* 选项,值为 oddeven

                    var table = $('#example').DataTable( {
      "stripeClasses": [ 'strip1', 'strip2', 'strip3' ]
      } );
    • stateDuration:true/false:状态保存有效期

      在有效期时间内,状态一直有效,过了这个时间之后,恢复到默认状态。 这个选项还可以用来指明是使用localStorage还是sessionStorage,当为-1的时候使用sessionStorage,当为0或者更大的数字的时候使用 localStorage

      sessionStorage仅保留当前会话的数据(ie.当前的浏览器窗口)

      请注意,该值以秒为单位。0 是一个特殊的值,表示可以无限期的储存和检索已经存在的对象。

                    $('#example').DataTable( {
      "stateSave": true,
      "stateDuration": 60 * 60 * 24
      } );
  • 搜索

    • search :true/false:设置一个全局的过滤条件

      • caseInsensitive:true/false:大小写敏感
      • regex:true/false:是否支持正则匹配
      • regex:true/false:允许或者禁止DataTables的只能过滤(搜索)功能
    • searchDelay:数值:设置搜索延迟时间
    • searchCols:数组:给每一列定义一个初始的搜索条件

      search.search类似,只是这个不是全局的, 而是针对于某个列,这个参数接受一个对象数组,对象里有两个属性 searchescapeRegex

      search 代表过滤的条件,escapeRegex 代表是否支持正则,这个参数是可选的。

      需要注意的是,这个对象数组需要和列数匹配。

                    var table = $('#example').DataTable( {
      "searchCols": [
      null,
      //第二列初始化过滤条件为 My filter
      { "search": "My filter" },
      null,
      //第四列初始化过滤条件为 使用正则表达是 ^[0-9] 来过滤
      { "search": "^[0-9]", "escapeRegex": false }
      ]
      } );
  • 布局:DOM

    DataTable dom 元素介绍

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

    DOM 定位

    • < > :这个尖括号就代表 html标签里的 <div></div>
    • <"className" > :代表添加了class的div <div class="className"></div>
    • <"#id" > :代表添加了id的div < <div id="id"></div>

    DOM 实例

                    var table = $("#example").DataTable({
    "dom": "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
    "<'row'<'col-sm-12'tr>>" +
    "<'row'<'col-sm-5'i><'col-sm-7'p>>"
    });

    最终显示为这样

                   < div id="example_wrapper" class="dataTables_wrapper form-inline">
    <div class="row">
    <div class="col-sm-6">
    <div class="dataTables_length" id="example_length">
    <label><select name="example_length" aria-controls="example" class="form-control input-sm">
    <option value="10">10</option>
    <option value="25">25</option>
    <option value="50">50</option>
    <option value="100">100</option>
    </select> records per page</label>
    </div>
    </div>
    <div class="col-sm-6">
    <div id="example_filter" class="dataTables_filter">
    <label>Search:<input type="search" class="form-control input-sm" placeholder=""
    aria-controls="example"/></label>
    </div>
    </div>
    </div>
    <div class="row">
    <div class="col-sm-12">
    <table id="example" class="table table-striped table-bordered dataTable" role="grid"
    aria-describedby="example_info" style="width: 1304px;">
    <thead>
    <tr role="row">
    <th class="sorting_asc" tabindex="0" aria-controls="example" rowspan="1" colspan="1"
    aria-label=": activate to sort column descending" aria-sort="ascending"
    style="width: 27px;"></th>
    <th class="sorting" tabindex="0" aria-controls="example" rowspan="1" colspan="1"
    aria-label="序号: activate to sort column ascending" style="width: 77px;">序号
    </th>
    <th class="sorting" tabindex="0" aria-controls="example" rowspan="1" colspan="1"
    aria-label="标题: activate to sort column ascending" style="width: 570px;">标题
    </th>
    <th class="sorting" tabindex="0" aria-controls="example" rowspan="1" colspan="1"
    aria-label="连接: activate to sort column ascending" style="width: 481px;">连接
    </th>
    </tr>
    </thead>
    <tbody>
    <tr role="row" class="odd">
    <td class="sorting_1">1</td>
    <td>1</td>
    <td><a href="Online Program knowledge share and study platform" target="_blank">Online Program
    knowledge share and study platform</a></td>
    <td>http://www.gbtags.com/gb/index.htm</td>
    </tr>
    <tr role="row" class="even">
    <td class="sorting_1">2</td>
    <td>2</td>
    <td><a href="Share Code Gbtags" target="_blank">Share Code Gbtags</a></td>
    <td>http://www.gbtags.com/gb/listcodereplay.htm</td>
    </tr>
    <tr role="row" class="odd">
    <td class="sorting_1">3</td>
    <td>3</td>
    <td><a href="Online live Gbtags" target="_blank">Online live Gbtags</a></td>
    <td>http://www.gbtags.com/gb/gbliveclass.htm</td>
    </tr>
    </tbody>
    <tfoot>
    <tr>
    <th rowspan="1" colspan="1"></th>
    <th rowspan="1" colspan="1">序号</th>
    <th rowspan="1" colspan="1">标题</th>
    <th rowspan="1" colspan="1">连接</th>
    </tr>
    </tfoot>
    </table>
    </div>
    </div>
    <div class="row">
    <div class="col-sm-5">
    <div class="dataTables_info" id="example_info" role="status" aria-live="polite">
    Showing 1 to 3 of 4 entries
    </div>
    </div>
    <div class="col-sm-7">
    <div class="dataTables_paginate paging_simple_numbers" id="example_paginate">
    <ul class="pagination">
    <li class="paginate_button previous disabled" aria-controls="example" tabindex="0"
    id="example_previous"><a href="#">Previous</a></li>
    <li class="paginate_button active" aria-controls="example" tabindex="0"><a href="#">1</a></li>
    <li class="paginate_button " aria-controls="example" tabindex="0"><a href="#">2</a></li>
    <li class="paginate_button next" aria-controls="example" tabindex="0" id="example_next"><a
    href="#">Next</a></li>
    </ul>
    </div>
    </div>
    </div>
    </div>
    • columnDefs :设置列定义初始化属性

      columns参数很像,这个参数允许你给指定列设置选项,应用到一个或这多个列。而不像 columns需要每列都要定义 这个参数是一个列定义对象数组,通过使用 columnDefs.targets 选项,告诉Datatables是定义的是那一列,他可以是下列情况:

      • 0或者正整数-列从左到右是从0开始
      • 一个负数-列从右到左的索引(-1代表最后一列)
      • 一个字符串-将字符串和类名匹配列
      • 字符串"_all"-所有列
      • 另外, targets可以同时指定多列,接受一个数组(比如 targets: [ -1, -2 ] )
                      $('#example').dataTable( {
      "columnDefs": [ {
      "targets": 0,
      "searchable": false //第一列禁止参与搜索
      } ]
      } ); $('#example').dataTable( {
      "columnDefs": [ {
      "targets": [ 0, 2 ],
      "orderable": false //第一三列不能排序
      } ]
      } ); $('#example').dataTable( {
      "columnDefs": [ {
      "targets": 'nosort',
      "orderable": false //列包含‘nosort’列名的不排序
      } ]
      } );
    • columns :设置列特殊的初始化属性

      在初始化的时候可以使用本参数来定义列

      • data ::设置列的数据源,即如何从整个Table的数据源(object / array)中获得
      • name ::给列设置一个描述名称

        当时使用 DataTables API 时,你也许希望能够处理各个列(比如总计一列的数字总和),DataTables 有 两种基本的方法来标记列:

        • 列索引(当表格初始化的时候索引会自动分配)
        • 使用名称标记(当你使用 columns.name 参数的时候
          使用 columns.name 配置,可以使 API 操作列变得非常方便。比如访问一列的数据,你可以这样使用 table.column( 'location:name' ).data() 这里有两个关键点:

          • location 是标准前缀,用来告诉DataTables使用名称来操作列而不是索引
          • :name 追加冒号和具体的名称表明DataTables应该使用 name 去做选择器操作
                            $('#example').DataTable( {
        "columnDefs": [
        { "name": "engine", "targets": 0 },
        { "name": "browser", "targets": 1 },
        { "name": "platform", "targets": 2 },
        { "name": "version", "targets": 3 },
        { "name": "grade", "targets": 4 }
        ]
        } );
        $('#example').DataTable( {
        "columns": [
        { "name": "engine" },
        { "name": "browser" },
        { "name": "platform" },
        { "name": "version" },
        { "name": "grade" }
        ]
        } );
      • orderable:true/false:开启/禁用这列是否排序
      • title:true/false:设置列的标题
      • searchable:true/false:该列是否可搜索
      • visiable:true/false:允许或者禁止列的显示
      • width:true/false:设定列宽
      • orderSequence:[ 'asc', 'desc' ]:设置列的点击排序顺序
                          $('#example').DataTable( {
        "columns": [
        null,
        { "orderSequence": [ "asc" ] },
        { "orderSequence": [ "desc", "asc", "asc" ] },
        { "orderSequence": [ "desc" ] },
        null
        ]
        } ); $('#example').DataTable( {
        "columnDefs": [
        { "orderSequence": [ "asc" ], "targets": [ 1 ] },
        { "orderSequence": [ "desc", "asc", "asc" ], "targets": [ 2 ] },
        { "orderSequence": [ "desc" ], "targets": [ 3 ] }
        ]
        } );
      • defaultContent:自定义字符串:设定该列的默认、静态的内容
      • className :自定义字符串:给列中每个单元格指定一个或多个class
                           $('#example').DataTable( {
        "columnDefs": [
        { className: "my_class", "targets": [ 0 ] }
        ]
        } ); $('#example').DataTable( {
        "columns": [
        { className: "my_class my_class2" },
        null,
        null,
        null,
        null
        ]
        } );
      • createdCell :自定义字符串:单元格创建回调以允许操作DOM

        function createdCell( cell, cellData, rowData, rowIndex, colIndex )

        参数 描述
        cell 已经创建的 td 节点
        cellData 单元格的数据,如果你使用了 columns.render去修改数据,使用 $(cell).html()得到渲染后的数据。这里的数据是来自数据源里没有修改过的原始数据
        rowData 整行的数据对象,可能是object或者array
        rowIndex DataTables内部的行索引
        colIndex DataTables内部的列索引
        cellData 已经创建的 td 节点
        cellData 已经创建的 td 节点
                           $('#example').DataTable( {
        "columnDefs": [ {
        "targets": 3,
        "createdCell": function (td, cellData, rowData, row, col) {
        if ( cellData < 1 ) {
        $(td).css('color', 'red')
        }
        }
        } ]
        } );
      • orderDataType :自定义字符串:给列分配实时DOM排序类型
                           $('#example').DataTable( {
        "columns": [
        null,
        null,
        { "orderDataType": "dom-text" },//按照text排序
        { "orderDataType": "dom-text", "type": "numeric" },
        { "orderDataType": "dom-select" }, //按照select排序
        { "orderDataType": "dom-checkbox" } //按照checkbox排序
        ]
        } );
      • render ::渲染(处理)数据显示在表格中

        function render( data, type, row, meta )

        参数 描述
        data 当前cell的值(基于 columns.data
        type 数据类型 - 有这些值:filter、display、type、sort
        row 整个row的数据(不基于 columns.dataOption )
        meta 从 1.10.1版开始: 一个对象包含了单元格的附加信息. 对象包含如下属性:

        • row:被请求的单元格行的索引
        • col: 被请求的单元格列的索引
        • settings:DataTables.Settings

        首列添加checkbox

                          var table = $("#tableid").DataTable({
        ajax: {
        url: "data.json",
        type: "POST"
        },
        columns: [{
        data: null,
        title: ""
        },
        {
        data: "name",
        title: "名称"
        },
        {
        data: "age",
        title: "年龄"
        }],
        columnDefs: [{
        // 指定第一列,从0开始,0表示第一列,1表示第二列……
        targets: 0,
        render: function(data, type, row, meta) {
        return ''
        }
        }]
        });
  • 回调函数

    • footerCallback:tfoot显示回调方法

      一个标准的表格分为thead,tbody和tfoot,一般我们可能只使用了thead和tbody,在开发过程中偶尔也会在表头做一些特殊处理,DataTables 提供了表头的回调处理 基本语法:

      function footerCallback( tfoot, data, start, end, display )

      参数 描述
      tfoot table的表脚
      data table的所有数据对象
      star 当前表格中显示的数据的第一条记录索引
      end 当前表格中显示的数据的最后一条记录索引
      display  

      使用reduce()方法实现合计功能

                         $('#example').dataTable( {
      "footerCallback": function( tfoot, data, start, end, display ) {
      var api = this.api();
      $( api.column( 5 ).footer() ).html(
      api.column( 5 ).data().reduce( function ( a, b ) {
      return a + b;
      } )
      );
      }
      } );
    • drawCallback:Datatables每次重绘后执行的方法

      function drawCallback( settings )

      参数 描述
      settingst Datatables的设置对象
                         $('#example').dataTable( {
      "drawCallback": function( settings ) {
      alert( '表格重绘了' );
      }
      } );
      $('#example').dataTable( {
      "drawCallback": function( settings ) {
      var api = this.api();
      // 输出当前页的数据到浏览器控制台
      console.log( api.rows( {page:'current'} ).data() );
      }
      } );
    • createdRow:tr元素被创建时候的回调函数

      function createdRow( row, data, dataIndex )

      参数 描述
      row 已经被创建的tr元素
      data 包含这行的数据对象
      dataIndex Datatables内部存储的数据索引
                         $('#example').dataTable( {
      "createdRow": function( row, data, dataIndex ) {
      if ( data[4] == "A" ) {
      $(row).addClass( 'important' );
      }
      }
      } );
    • formatNumber: 数字格式化

      function ( toFormat )

      参数 描述
      toFormat 被格式化的数据
                        $('#example').DataTable( {
      "formatNumber": function ( toFormat ) {
      //使用正则表达式匹配,替换数字
      return toFormat.toString().replace(/\B(?=(\d{3})+(?!\d))/g, "'");
      };
      } );
    • initComplete: 当表格完成加载绘制完成后执行此方法。

      function initComplete( settings, json )

      参数 描述
      settings datatables的设置对象
      json 如果使用ajax选项来获取数据,则得到服务器返回的数据,否则是 undefined
                        $('#example').dataTable( {
      "initComplete": function(settings, json) {
      alert( 'DataTables has finished its initialisation.' );
      }
      } );
    • rowCallback : 行绘制回调函数。

      这个回调一般用来给行添加 class 名称,或者直接操作 TR 元素,但请注意,初始化操作中, createdRow 操作行的效率要更高

      function( row, data, index )

      参数 描述
      row 当前行对象
      data 本行的原始数据
      index 本行索引
                      //高亮显示单元格值为A的(对象类型数据源)
      $('#example').DataTable( {
      "rowCallback": function( row, data, index ) {
      if ( data.grade == "A" ) {
      $('td:eq(4)', row).html( 'A' );
      }
      }
      } );
      //高亮显示单元格值为A的(数组类型数据源)
      $('#example').DataTable( {
      "rowCallback": function( row, data, index ) {
      if ( data[4] == "A" ) {
      $('td:eq(4)', row).html( 'A' );
      }
      }
      } );

code { font-family: sans-serif; font-size: 18px; color: rgba(210, 105, 30, 1) }
span { font-family: sans-serif; font-size: 18px; color: rgba(47, 79, 79, 1) }
.show { border: 1px dashed rgba(85, 107, 47, 1); padding: 1px }
p { color: rgba(65, 105, 225, 1) }
table { border-collapse: collapse; border: 2px solid rgba(0, 0, 0, 1); color: rgba(25, 25, 112, 1) }
td, th { border-collapse: collapse; border: 2px solid rgba(0, 0, 0, 1) }

dataTaDataTable 详细教程的更多相关文章

  1. SASS教程sass超详细教程

    SASS安装及使用(sass教程.详细教程) 采用SASS开发CSS,可以提高开发效率. SASS建立在Ruby的基础之上,所以得先安装Ruby. Ruby的安装: 安装 rubyinstaller- ...

  2. Git使用详细教程(一)

    很久不发博客,最近有兴趣想写点东西,但 Live Writer 不支持从Word复制图片,疯狂吐槽下 Git使用详细教程(一) Git使用详细教程(二) 该教程主要是Git与IntelliJ IDEA ...

  3. Win7 U盘安装Ubuntu16.04 双系统详细教程

    Win7 U盘安装Ubuntu16.04 双系统详细教程 安装主要分为以下几步: 一. 下载Ubuntu 16.04镜像软件: 二. 制作U盘启动盘使用ultraISO: 三. 安装Ubuntu系统: ...

  4. Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)

    Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级 ...

  5. Ubuntu 16.04安装QQ国际版图文详细教程

            因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全 ...

  6. Ubuntu-安装-theano+caffe-超详细教程

    一.说明 本文是继<Ubuntu-安装-cuda7.0-单显卡-超详细教程> 之后的续篇.theano和caffe是深度学习库,对运算能力需求很大,最好使用cuda进行加速.所以,请先阅读 ...

  7. Struts2详细教程

    Struts2详细教程:http://www.yiibai.com/struts_2/

  8. Java log4j详细教程

    Java log4j详细教程 http://www.jb51.net/article/74475.htm

  9. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )

    [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 ) billcheung 发表于 2011-10-23 00:07:49 https://www.itsk.com ...

随机推荐

  1. 复杂SQL案例:用户听课情况查询

    供参考: select h.course_id, h.course_type, i.course_title, r.id res_id, r.res_title, h.user_id, u.user_ ...

  2. SpringBoot项目使用Caffeine本地缓存

    环境配置:(或以上版本,必须) JDK 版本:1.8  Caffeine 版本:2.8.0SpringBoot 版本:2.2.2.RELEASE 也可以不与SpringBoot结合 1.添加maven ...

  3. Linux(centos) 设置MySQL数据库不区分大小写

    1.修改配置文件 vim /etc/my.cnf 在[mysqld]节点下,加入一行: lower_case_table_names=1 2.重启数据库服务 service mysqld restar ...

  4. 【LeetCode】188. Best Time to Buy and Sell Stock IV 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...

  5. 【LeetCode】467. Unique Substrings in Wraparound String 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址: https://leetcode.com/problems/unique-s ...

  6. 【LeetCode】475. Heaters 解题报告(Python & C++)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcod ...

  7. 【LeetCode】844. Backspace String Compare 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 字符串切片 栈 日期 题目地址:https://le ...

  8. 实现golang io.Writer支持按照天为单位分割日志

    golang中的日志不支持按照天分割,很多开源的日志包都是只支持按照文件大小分割日志,不太利于生产环境中的使用.因此我实现了timewriter,支持: 实现按照天为单位分割日志,可以完美支持gola ...

  9. Codeforces 450C:Jzzhu and Chocolate(贪心)

    C. Jzzhu and Chocolate time limit per test: 1 seconds memory limit per test: 256 megabytes input: st ...

  10. HDU 6470:Count(矩阵快速幂)

    Count Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...