datatable使用介绍(代码片段)

沧海一粟,何以久远 沧海一粟,何以久远     2022-10-26     370

关键词:

Datatables是一款jquery表格插件。它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能。

1、支持分页:前台分页和后台分页

前台分页:后台一次把数据传过来,交给前端渲染。缺点:初次渲染时间长;优点:渲染完成后,搜索和排序速度很快

后台分页:前端把每页显示的条数、查询的页数、搜索的内容、排序列等信息传给后端,后端收到这些信息后,去数据库里查询指定页的信息,并统计出总共条数等信息,而后传给前端。缺点:每次排序、搜索、翻页都要去后台查库,耗时;优点:初次渲染快

共同点:随着数据量的增大,二者的查询时间都会变成。但是前台分页,需要网络传输大量的后台信息到前台,网络传输时间长,前端渲染压力大;后台分页每次只传输固定量的数据,网络耗时少,但是查库次数多。总得来看,对于数据量递增的情况,还是选用后台分页

2、其他功能见官网:举例、手册、插件、接口、论坛、博客等,一应俱全。看着样例,比葫芦画瓢总会的

中文官网:http://datatables.club/example/ 里面有大量的信息

英文官网:https://datatables.net/examples/server_side/post.html

3、1.10+版本前后,有些参数名字有调整,但是具有向下兼容性

4、后台分页的例子:https://datatables.net/examples/server_side/

JS代码

$(document).ready(function() 
    $(‘#example‘).DataTable( 
        "processing": true,      //翻页或者搜索的时候,前端是否给出“正在搜索”等提示信息
        "serverSide": true,     // true表示使用后台分页
        "ajax": 
            "url": "scripts/post.php",  // 异步传输的后端接口url
            "type": "POST"      // 请求方式
        ,
        "columns": [
             "data": "first_name" ,
             "data": "last_name" ,
             "data": "position" ,
             "data": "office" ,
             "data": "start_date" ,
             "data": "salary" 
        ]
     );
 );

html代码:添加一个table标签,表头和表尾信息,必须有表头信息<thead>; <tbody></tbody> 可以不用,dataTables.js可以动态加载

<table id="example" class="display" style="width:100%">
        <thead>
            <tr>
                <th>First name</th>
                <th>Last name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </thead>
        <tfoot>
            <tr>
                <th>First name</th>
                <th>Last name</th>
                <th>Position</th>
                <th>Office</th>
                <th>Start date</th>
                <th>Salary</th>
            </tr>
        </tfoot>
    </table>

ajax调用后端接口,后端接口返回信息的格式


  "draw": 1,       //这个可以不写,有时候写会有问题,但是官方基于安全角度考虑建议写
  "recordsTotal": 57,  //总条数、总行数
  "recordsFiltered": 57,  //过滤出来的总行数、条数
//下面是前端展示的数据内容
"data": [ "first_name": "Airi", "last_name": "Satou", "position": "Accountant", "office": "Tokyo", "start_date": "28th Nov 08", "salary": "$162,700" , "first_name": "Angelica", "last_name": "Ramos", "position": "Chief Executive Officer (CEO)", "office": "London", "start_date": "9th Oct 09", "salary": "$1,200,000" ]

 

下面是数据表的初始化设置:控制前端界面展示情况

$(function () 
    $(‘#test-interface-table‘).dataTable(
      
          "ajax": 
              "url": "/a/b",
              "type": "POST"
          ,
          "processing": true,
          "serverSide": true,
          "bPaginate" : true,//分页工具条显示
          "bFilter" : true, //搜索栏
          "bSort" : false, //是否支持排序功能
          "order": [[3, "desc"]],//默认使用第几列排序
//中文化界面显示
"language": "lengthMenu": "每页显示 _MENU_条数据", "sSearch": "搜索: ", //搜索框label "sSearchPlaceholder":"区域、项目名称、场景名字、执行人", //搜索框里的提示信息placeholder #info: "当前是_PAGE_页,总共_PAGES_ 页,显示第_START_ 到第 _END_ ,筛选之后得到 _TOTAL_ 条,初始_MAX_ 条 ",//左下角的信息显示,大写的词为关键字。# "info": "第_PAGE_/_PAGES_页, 显示第_START_到第_END_, 搜索到_TOTAL_/_MAX_条", "infoFiltered":"", //过滤时的显示信息 "sProcessing": "正在加载数据,请稍等", //翻页、搜索时的前端提示信息 "zeroRecords": "抱歉,没有数据", //无数据时的前端信息 paginate: //分页的样式内容。 previous: "上一页", next: "下一页", first: "第一页", last: "最后" ); );

5、dataTable还可以解释bootstrap定制css样式

6、option ajax data 根据参数查询表格数据

dataTables本身是可以把一些参数从前端传给后端的,初次之外,你可以增加从前端传给后端的参数

7、修改搜索框的触发事件:默认是只要键盘弹起(keyup),就会开始搜索,比如你想搜索‘ab’,当你键盘输入完a再输入b时,会先搜索a,然后搜索ab。要么就把ab粘贴进去,就只会搜索ab,不会搜索a了。

但是我们可以根据下面文章的信息修改搜索触发事件为:回车

http://blog.csdn.net/u012088516/article/details/52423248

参考:

1、http://blog.csdn.net/huaishuming/article/details/52211259

2、http://blog.csdn.net/shya_/article/details/55510480

3、http://blog.csdn.net/tomcat_2014/article/details/50177645

4、http://blog.csdn.net/KokJuis/article/details/53925783

5、https://github.com/ssy341/datatables-cn

6、http://blog.163.com/huajin_226/blog/static/1773512302014812256921/

7、http://www.datatables.club/manual/daily/2016/04/21/option-ajax-data.html

abp之展现层(datatables分页)(代码片段)

...糙的展示,今天的随笔中将摸索进行分页展示。这里打算使用的分页插件是DataTables,这是一款比较强大的表格插件。在以前我们后台手动分页的时候,需要前台传入两个重要的分页参数:PageIndex和PageSize(显示第几页的数据和每... 查看详情

datatables的使用(代码片段)

...加载等众多好用的功能项目地址:https://datatables.net/基本使用需要用到的JS和CSS文件位于项目代码下的media目录中,需要将这个目录中的对应文件放入你的项目里,这一步不赘述引入CSS/JS文件,由于Datatables是基于Jquery的,所以要... 查看详情

关于datatable组件使用(代码片段)

偶然发现一个叫dataTable 的组件,觉得很好用,于是研究了一番,下面是代码varlang= "sProcessing":"处理中...", "sLengthMenu":"每页_MENU_项", "sZeroRecords":"没有匹配结果 查看详情

datatable序列化(代码片段)

...对象,无法直接序列化,必须通过其他的方式来实现下面介绍一下常用的几种方式1、先转换为List,再序列化List下面是DataTable转换为List的方法1protectedList<T>ConvertToList<T>(DataTabledt)whereT:new()23//定义集合4List<T>ts=newList<... 查看详情

datatables表格固定栏使用方法(代码片段)

...现在说一下实现方法:插件地址:https://datatables.net/ 使用方法:wageTable为表格的ID。vartable=$(‘#wageTable‘).DataTable(scrollX:true,scrollCollapse:true,pagin 查看详情

layui之datatable组件v1.0(父子表管理传值/数据表格与select&laydate结合等)(代码片段)

...求较多,比如“父子表格关联进行数据传递”、“表格中使用select组件”、“表格中使用日期控件”、“表格输入格式验证”、“数据表格新增(删除)一行”等等...?而这些内容在LayUI中都是不被支持的,迫于无奈自行进行了当前d... 查看详情

csharp使用2个选项将datatable转换为json。(代码片段)

查看详情

datatable.net使用server-sideprocessing(代码片段)

https://datatables.net/examples/server_side/simple.html當頁面上要顯示的數據在10萬筆以上時,可以使用server-sideprocessing.這樣在changeentries,paging,sorting的時候,會通過事先定義好的ajax去backend重新取得數據。RadGridTable=$(‘#tbNKeywords‘).on(‘pr 查看详情

使用带有primefacesdynaforms的datatable(代码片段)

我一直在尝试将dataTable与dynaforms一起使用,但没有成功;我没有结果。不过,我已经能够使用dataList生成结果。有人可以解释一下我需要纠正什么吗?我使用了p:dataTable和h:dataTable。我用注释包围了dataList引用,这样你就可以看... 查看详情

如何使用concurrentqueue进行线程处理(代码片段)

我想弄清楚使用队列的最佳方法是什么。我有一个返回DataTable的进程。反过来,每个DataTable都与之前的DataTable合并。有一个问题,在最终的BulkCopy(OutOfMemory)之前要保留的记录太多。所以,我已经确定我应该立即处理每个传入... 查看详情

实现datatables搜索框查询结果高亮显示(代码片段)

...多种表格高级功能。用户可以编写很少的代码(甚至只是使用官方的示例代码),做出一个漂亮的表格以展示数据。关于DataTables的更多信息,请查看:http://www.datatables.club/、https://datatables.net/。下图将要展示的南京景点游记的相... 查看详情

关于datatable组件使用(代码片段)

偶然发现一个叫dataTable 的组件,觉得很好用,于是研究了一番,下面是代码varlang= "sProcessing":"处理中...", "sLengthMenu":"每页_MENU_项", "sZeroRecords":"没有匹配结果", "sInfo&... 查看详情

datatables弹窗报错信息屏蔽方法(代码片段)

在使用datatables的时候,总是会弹出这样的warning:Error:DataTableswarning:tableid=data_table-Requestedunknownparameter‘4‘forrow0.Formoreinformationaboutthiserror,pleaseseehttp://datatables.net/tn/4如何屏蔽这样的信息警告呢?困扰了我很久, 查看详情

datatable添加序号列(代码片段)

使用render(data,type,row,meta)的参数meta直接新加一个列columns:[data:"id",title:"id",visible:false,searchable:false,data:null,tile:"序号",visible:true,searchable:false,data:"name",title:"名称",visible:true,search 查看详情

如何使用linq在具有多个条件的datatable中的日期之间进行求和?(代码片段)

Nameissue_datefree_coupon_dayscategoryEinstein25/Dec/201560movieHellenKeller01/Jan/20167movieEinstein09/Jul/19999movieEinstein14/Jun/20153waterparkHellenKeller19/Nov/198030movieEinstein29/Sep/201519mo 查看详情

salesforcelwc学习(十八)datatable展示image(代码片段)

本篇参看:https://developer.salesforce.com/docs/component-library/bundle/lightning-datatable/documentationhttps://www.lightningdesignsystem.com/components/data-tables/我们在salesforce中,经常会使用listview,标准的lightn 查看详情

20180323datatable增加datarow方式优化(代码片段)

...taTable的Columns,采用语句 dt2.Columns.Add("ID");这种办法在使用数据库表的栏位之时并不适用,可以采用select*from表where1=2的方式来得到DataTable的Columns,这里的*可以更具自己的需要进行列查询。2.在给DataTable增加数据的时候,喜 查看详情

在两个不同的datatable中单独过滤数据(代码片段)

...的复选框分别过滤每个表中的数据。到目前为止,我已经使用以下代码工作了:$("#sell_vis_cit").change(function()varchecked=this.checked;varallowFilter=['sell-o 查看详情