DataTable 跳转到指定页 自定义跳转

1、DataTable JS的介绍

DataTable JS是一款前端插件,可以根据后端返回的JSON数据快速生成前端数据表格的插件。

2、页面如何引用

这里要配合Bootstrap使用,页面展示会更好看

<!-- CSS 引用 -->
<link href="assets/css/bootstrap.css" rel="stylesheet"/>

<!-- JS 引用 -->
<script src="assets/js/jquery-1.10.2.js"></script>
<script src="assets/js/bootstrap.min.js"></script>
<script src="assets/js/dataTables/jquery.dataTables.js"></script>
<script src="assets/js/dataTables/dataTables.bootstrap.js"></script>

<!-- datatable 加载数据的代码-->
<script>
var table = $("#DataTable").DataTable({
                "ajax": {
                    "url": "getAsinAttributeList",
                    "type": "get",
                    "data": {
                        jobName: $("#configName").val()
                    },
                    "dataType": "json"
                },
                "dom": "lrtip",
                "pageLength": 10,
                "destroy": true,
                "columns": [
                    {"data": "jobName"},
                    {"data": "asin"},
                    {"data": "competitorAttributeName"},
                    {"data": "competitorAttributeValue"}
                ]
            });
</script>

3、自定义跳转到第N页按钮

注意:我们这里引用了layer UI JS进行弹出框提示,可以根据自己需求更改其他插件

$('#DataTable').on('draw.dt', function () {
            // Skip Page HTML
            var skipHtml = "<li class='paginate_button disabled'><a>Skip</a></li>";
            var inputHtml = "<li class='paginate_button'><input id='skipPageNumber' type='text' class='form-control' style='width:80px;float: left' /></li>";
            var GoHtml = "<li class='paginate_button'><a id='skipBT'>Go</a></li>";
            $("ul.pagination").append(skipHtml + inputHtml + GoHtml);
            // Skip Function
            $("#skipBT").on('click', function () {
                var info = table.page.info();
                var pageNumber = parseInt($("#skipPageNumber").val());
                if (pageNumber > 0 && pageNumber <= info.pages) {
                    table.page(pageNumber - 1).draw(false);
                } else {
                	// layer UI JS
                    layer.msg(pageNumber + " pages do not exist.")
                }
            });
        });

4、后端数据格式(Java)

4.1 定义一个数据返回类

import org.springframework.http.HttpStatus;

public class RetDTO<T> {
    private int code;
    private String msg;
    private T data;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public static <T> RetDTO<T> success(String msg) {
        RetDTO retDTO = new RetDTO();
        retDTO.setCode(HttpStatus.OK.value());
        retDTO.setMsg(msg);
        return retDTO;
    }

    public static <T> RetDTO<T> success(T data, String msg) {
        RetDTO retDTO = new RetDTO();
        retDTO.setCode(HttpStatus.OK.value());
        retDTO.setData(data);
        retDTO.setMsg(msg);
        return retDTO;
    }

    public static <T> RetDTO<T> error(String msg) {
        RetDTO retDTO = new RetDTO();
        retDTO.setCode(HttpStatus.BAD_REQUEST.value());
        retDTO.setMsg(msg);
        return retDTO;
    }

}

4.2 数据返回类如何和DataTable JS的数据格式一样

注意:我们这里的数据是一次全部返回,需求不同,可以设定Datatable JS的服务器模式,原理就是Datatable JS的服务器模式,在请求后端的时候,会携带分页的参数,例如:PageNumber等,然后你就可以在后台写分页查询

@RequestMapping(value = "getAsinAttributeList", method = RequestMethod.GET)
public RetDTO<List<AsinAttributeList>> getAsinSearchList(AsinAttributeList asinAttributeList) {
     List<AsinAttributeList> lists = asinAttributeListService.getListByParam(asinAttributeList);
     return RetDTO.success(lists, "Query Success!");
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值