Jquery Datatables的使用详解(4)

我只接受这些字段就好了,就可以完成查询了,draw这个字段其实就是一个标识,因为查询是异步的,所以需要在服务端查询好数据后把这个标识原封不动的返回给DT,使DT可以将请求和响应的处理对应起来。

我在服务端需要接受的东西有些是DT不会自动生成的,那么如何添加这些我们自己觉得有用的字段呢?一会儿说完出参格式的时候会把代码贴出来进行说明。

再看一下官方给出的出参的说明

名称 类型 描述
draw   integerJS  

必要。上面提到了,Datatables发送的draw是多少那么服务器就返回多少。 这里注意,作者出于安全的考虑,强烈要求把这个转换为整形,即数字后再返回,而不是纯粹的接受然后返回,这是 为了防止跨站脚本(XSS)攻击。

 
recordsTotal   integerJS  

必要。即没有过滤的记录数(数据库里总共记录数)

 
recordsFiltered   integerJS  

必要。过滤后的记录数(如果有接收到前台的过滤条件,则返回的是过滤后的记录数)

 
data   arrayType  

必要。表中中需要显示的数据。这是一个对象数组,也可以只是数组,区别在于 纯数组前台就不需要用 columns绑定数据,会自动按照顺序去显示 ,而对象数组则需要使用 columns绑定数据才能正常显示。 注意这个 data的名称可以由 ajaxOption ajax不定时一讲 的 控制

 
error   stringJS  

可选。你可以定义一个错误来描述服务器出了问题后的友好提示

 

除了上面的返回参数以外你还可以加入下面的参数,来实现对表格数据的自动绑定

名称 类型 描述
DT_RowId   stringJS  

自动绑定到 tr节点上

 
DT_RowClass   stringJS  

自动把这个类名添加到 tr

 
DT_RowData   objectJS  

使用 jQuery.data() 方法把数据绑定到row中,方便之后用来检索(比如加入一个点击事件)

 
DT_RowAttr   objectJS  

自动绑定数据到 tr上,使用 jQuery.attr() 方法,对象的键用作属性,值用作属性的值。注意这个 需要 Datatables 1.10.5+的版本才支持

 

其实除了data这个字段以外,其他的信息都是交给DT自己控制的,比如说recordsTotal,我们在后端查询出所有记录的数量后,把这个值置好,那么DT收到后就会在这里显示出这个记录的数量。然后我们可以截取data这个列表,进行进一步的绑定处理。

看下服务端定义的出参的格式:

public class CommonDatatableBean { private int draw; private int recordsTotal; private int recordsFiltered; private List<Object> data; public int getDraw() { return draw; } public void setDraw(int draw) { this.draw = draw; } public int getRecordsTotal() { return recordsTotal; } public void setRecordsTotal(int recordsTotal) { this.recordsTotal = recordsTotal; } public int getRecordsFiltered() { return recordsFiltered; } public void setRecordsFiltered(int recordsFiltered) { this.recordsFiltered = recordsFiltered; } public List<Object> getData() { return data; } public void setData(List<Object> data) { this.data = data; } }

可以看到这是一个通用的格式,所有的表格数据都可以封装在这个对象中返回,区别就是data中Object类型不同而已。

入参和出参格式说完了,可以看一下DT如何设置ajax请求后端的数据

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/30a436e759601c1ed20785702e2513c0.html