1、datatable定义新的每页显示的行数选择下拉,直接设置如下属性:
aLengthMenu: [10, 30, 50, 100],
2、datatable点击表头排序后台接受的参数处理方式(官网上比较难查到,我这儿后台是php处理的)
$orderDatas = I('post.order');$order = $this->getOrder($orderDatas);
/** * @use [得到排序条件] * @User chenxiaogang * @param $order * @return string */private function getOrder($order){ $str = ''; foreach($order as $v) { switch($v['column']) { case '0': //默认 $str = 'id asc'; break; case '1': $str = 'id ' . $v['dir'] . ','; break; case '2': $str = 'createtime ' . $v['dir'] . ','; } } return rtrim($str, ',');}
3、获取myDatatable.page.info()分页信息(如下,拷贝下面代码打开控制台看下你就明白了)
var myDatatable = $('#datatable').on('xhr.dt', function (e, settings, json, xhr) { //console.log(json); var info = myDatatable.page.info(); console.log(info); }).DataTable()
4、如何查询或使用翻页操作带来的实时分页信息,代码如下:
//翻页操作如下:myDatatable.on( 'page.dt', function () { var info = myDatatable.page.info(); console.log(info);} );
5、如何在表格加载完成后获取全部数据,可以在如下方法中可见:
$('#datatable').on('xhr.dt', function (e, settings, json, xhr) { console.log(json);}).DataTable()
6、datatable刷新表格数据,分页信息不会重置【这点我知道曾经坑过很多人】
myDatatable.ajax.reload( null, false );
可用来代替 myDatatable.draw(true)【表格重绘】
7、datatable重载(第6点的扩充)(可修改datatable的参数)
var param = {'costid': checkerzi.val()};minDatatable.settings()[0].ajax.data = param;//minDatatable.settings()[0].ajax.url = '{:U("detail")}';minDatatable.ajax.reload();
8、如何关闭某一列的排序,改一下colums里面字段参数属性:
{"data": "id", "bSortable": false},
9、让datatable不分页(有些功能还是有这个需求的) 前端option中:
paging:false,
而后台POST接收的length会接受到-1值,判断一下是否等于-1,来进行SQL的limit即可