jquery dataTable数据显示问题

jquery dataTable插件使用点记录
使用dataTable要按照文档要求的格式才可显示数据,https://www.datatables.net/manual/data/
这里可以看到有几种格式,我项目中使用的是Object类型的数据,即controller返回的data为List格式,Object一般为自己定义的bean;也可以是List<Map<String,Object>>,因为我的dao层使用的是mybatis,如果不自定义对象,mybatis默认映射返回Map<String, Object>,如果是多个对象,则返回的是List<Map<String, Object>>,实际上直接返回List<Map<String, Object>>就可以在dataTable中显示。
今天遇到的情况是无法显示,一般前端浏览器开发工具看到的报错为 Uncaught TypeError: Cannot read property ‘length’ of undefined,
以前我看到这种异常会以为是插件报错等等等等,后来发现是数据什么的不对。
这里有两种情况:
var table = $(’#example0’).DataTable({
“ajax”:urlUtil+"/getOperData/operInfo",
“columns”: [
{ “data”: “operId” },
{ “data”: “loginName” },
{ “data”: “operName” },
{ “data”: “operIp” },
{ “data”: “operEmail” },
{ “data”: “operTelephone” },
{ “data”: “operState” }
]};
如果ajax是这么写的话: 如果返回数据为List,需要将它放到map里面,像这样(我这里举个栗子,大家要注意规范):
HashMap map = new HashMap();
map.put(“data”, List);
然后返回json即可;

第二种情况是:
如果不想像上面那么麻烦,而直接返回list的话,要这样写:
var table = $(’#example0’).DataTable({
“ajax”:{
url: urlUtil+"/getOperData/operInfo",
type: “GET”,
dataSrc: function(data){
return data;
}
},
“columns”: [
{ “data”: “operId” },
{ “data”: “loginName” },
{ “data”: “operName” },
{ “data”: “operIp” },
{ “data”: “operEmail” },
{ “data”: “operTelephone” },
{ “data”: “operState” }
]};
当然了,不知道大家遇到的情况是不是一样,我这里只是做一些记录,具体原理还没有深究。
告辞了。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值