首页 新闻 会员 周边

datatables排序:ajax数据已经返回,表格不刷新

0
悬赏园豆:10 [已解决问题] 解决于 2018-06-12 16:29

问题描述:ajax可以正常返回数据,datatables也可以显示数据,但是当点击排序按钮时,

数据也可以正确返回,但是表格就是不刷新。

JS代码:

    var i = -1;
    table = $('#dataTable').dataTable(
            {
                ordering : true,
                ajax : {
                    url : appPath + "/school/list/",
                    data : function(data) {
                        // 添加额外的参数传给服务器
                        data.schoolName = $("#schoolName").val();
                        data.province = $("#province").val();
                        data.city = $("#city").val();
                        data.state = $("#state").val();
                        var orderBy = '';
                        for (var i = 0; i < data.order.length; i++) {
                            order = data.order[i];
                            column = data.columns[order.column];
                            orderBy += column.data + " " + order.dir;
                        }
                        data.orderBy = orderBy;
                        delete (data.columns);
                        delete (data.order);
                        delete (data.search);
                    }
                },
                columnDefs : [
                        {
                            targets : ++i,
                            title : '',
                            data : null,
                            render : function(data, type, row, meta) {
                                return '<input type="checkbox" value="'
                                        + row.schoolID + '" />';
                            },
                            orderable : false
                        }, {
                            targets : ++i,
                            title : 'ID',
                            data : 'schoolID'
                        }, {
                            targets : ++i,
                            data : 'schoolName'
                        }, {
                            targets : ++i,
                            title : '省分',
                            data : 'province',
                            orderable : false
                        }, {
                            targets : ++i,
                            title : '城市',
                            data : 'city',
                            orderable : false
                        }, {
                            targets : ++i,
                            title : '状态',
                            data : 'state',
                            render : function(data, type, row, meta) {
                                var state = '';
                                if (data == 'actived') {
                                    state = "激活";
                                } else if (data == 'unactived') {
                                    state = "未激活";
                                }
                                return state;
                            }
                        }, {
                            targets : ++i,
                            title : '生效时间',
                            data : 'activeTime'
                        }, {
                            targets : ++i,
                            title : '失效时间',
                            data : 'expireTime'
                        }, {
                            targets : ++i,
                            title : '校长',
                            data : 'principalID',
                            orderable : false
                        }, {
                            targets : ++i,
                            title : '管理员',
                            data : 'adminID',
                            orderable : false
                        },
                order : [ [ 1, 'asc' ] ]
            });

日志显示正确执行了SQL,并返回了数据:

请高手解决,谢谢!

huiy_小溪的主页 huiy_小溪 | 菜鸟二级 | 园豆:316
提问于:2018-05-15 15:03
< >
分享
最佳答案
0

是自己的一个愚蠢的错误,排序信息当成了查询字符串传入,就是mybatis中的?,这样肯定无法正确排序。

谢谢各位。

huiy_小溪 | 菜鸟二级 |园豆:316 | 2018-05-15 16:04
其他回答(2)
0

仔细检查,可能json组错了

收获园豆:5
龙行天涯 | 园豆:1794 (小虾三级) | 2018-05-15 16:00

谢谢回复,不是json错误,是我的SQL有问题。排序信息传入进去当成了查询字符串了。所以会产生这样的问题。

支持(0) 反对(0) huiy_小溪 | 园豆:316 (菜鸟二级) | 2018-05-15 16:02

@huiy_小溪: 好的,解决了就好

支持(0) 反对(0) 龙行天涯 | 园豆:1794 (小虾三级) | 2018-05-15 16:04
0
$('#example').DataTable( {
 
        "serverSide"true,   //是否对列排序
    } );
加上serverSide:true 试试
详细 参考官方文档  https://datatables.net/examples/server_side/simple.html
收获园豆:5
.NET_海 | 园豆:480 (菜鸟二级) | 2018-05-15 16:06

谢谢了!

支持(0) 反对(0) huiy_小溪 | 园豆:316 (菜鸟二级) | 2018-05-15 16:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册