我们主要讨论datatables中 高级排序,每一行添加序号索引
(一)高级排序
该功能主要是实现当点击排序的时,datatables首先执行降序或者升序排列
配置每一列中的orderSequence属性值
"columns": [
{ "data": null,"targets": 0 ,"orderSequence": [ "desc", "asc" ]},
{ "data": "moId","targets": 1 ,"orderSequence": [ "desc", "asc" ]}
],
orderSequence属性值是 ["desc","acs"..."desc"....]
(二)添加行序号
之前考虑可以使用oracle数据库中的rownum来作为行号,因为rownum是连续的数字似乎可以满足要求,但是当点击来升序和排序之后,那么这样的序号就会被打乱。下面的代码解决了点击升序或者降序之后造成的序号混乱问题。
"fnDrawCallback": function(){
var api = this.api();
var startIndex= api.context[0]._iDisplayStart;//获取到本页开始的条数
api.column(0).nodes().each(function(cell, i) {
cell.innerHTML = startIndex + i + 1;
});
}
html中表格需要添加一个列作为序号列通常放在表格的第一列(左边开始数)
<span style="white-space:pre"> </span><table width="98%" class="display" id="dataGrid" cellspacing="0">
<thead>
<tr>
<th>序号</th>
<th>会员编码</th>
</tr>
</thead>
</table>
需要将你的序号列设置如下 因为序号列没有绑定我们后台传递过来的json对象的属性数据,所以要设置设置为null
{ "data": null,"targets": 0 ,"orderSequence": [ "desc", "asc" ]},