>  기사  >  웹 프론트엔드  >  Jquery 페이징의 두 가지 구현 방법

Jquery 페이징의 두 가지 구현 방법

小云云
小云云원래의
2018-03-21 09:18:304281검색

이 기사에서는 주로 jquery 페이지 매김의 두 가지 구현 방법을 공유합니다. 이 플러그인은 jQuery의 ajax 페이징 플러그인입니다. 페이징에 이 플러그인을 사용하고 관련된 데이터의 양이 많은 경우 데이터를 비동기적으로 로드할 수 있으며, 데이터가 많지 않을 때 한 번에 직접 로드할 수 있어 편리하고 간단합니다.

1: 다운로드 주소 및 메소드 매개변수 소개

  1. 이름                                                                                                                 총 항목 수는 10입니다.

  2. num_display_entries 연속 페이징의 주요 부분에 표시되는 페이징 항목 수 선택적 매개변수는 10입니다.

  3. current_page 선택적 매개변수, 기본값은 1페이지를 나타내는 0입니다.

  4. num_edge_entries 2개의 앞면과 뒷면에 표시되는 항목 수는 선택사항일 수 있습니다. 기본값은 0입니다.

  5. Link_to 페이징, 선택적 매개변수, 기본값은 "#"
  6. prev_text "첫 번째 페이지" 페이징 버튼 표시됨 텍스트 문자열 매개변수, 선택적, 기본값은 "이전"
  7. next_text "다음 페이지" 페이징 버튼, 텍스트 문자열 매개변수, 기본값은 "Next"
  8. ellipse_Text 생략된 페이지 이를 표현하려면 어떤 텍스트를 사용해야 합니까? 선택적 문자열 매개변수, 기본값은 "..."
  9. prev_show_always 표시 여부 "이전 페이지" 페이징 버튼 부울 유형, 선택적 매개변수, 기본값은 true입니다. 즉, "이전 페이지" 버튼이 표시됩니다.
  10. next_show_always "다음 페이지" 페이징 버튼 표시 여부                                                  >
  11. 둘: 소개 jquery.js, jquery.pagination.js 및 pagination.css

  12. <script src="js/jquery.min.js"></script>
    <script src="js/jquery.pagination.js"></script>
    <link href="js/pagination.css" rel="stylesheet" type="text/css" />

  13. 셋: jsp 페이지 요소 준비

<!--  显示分页数据 -->
<p class="list"></p>
<!-- 显示页码 -->
<p class="Pagination" id="pagination"></p>

    4: 비동기 구현 loading
  1. js 코드:
$(function() {  
    var pageSize = 5; // 每页显示多少条记录  
    var total; // 总共多少记录  
    Init(0); // 注意参数,初始页面默认传到后台的参数,第一页是0;  
    $(".Pagination").pagination(total, {  
        callback : PageCallback,  
        prev_text : &#39;上一页&#39;,  
        next_text : &#39;下一页&#39;,  
        items_per_page : pageSize,  
        num_display_entries : 4, // 连续分页主体部分显示的分页条目数  
        num_edge_entries : 1, // 两侧显示的首尾分页的条目数  
    });  
    //点击上一页、下一页、页码的时候触发的事件  
    function PageCallback(index, jq) { // 前一个参数表示当前点击的那个分页的页数索引值,后一个参数表示装载容器。  
        Init(index);  
    }  
    function Init(pageIndex) { // 参数就是点击的那个分页的页数索引值  
        $.ajax({  
                    type : "get",  
                    url : ROOT + "/map/getPeopleList?rows=" + pageSize + "&page="  
                            + pageIndex,  
                    async : false,  
                    dataType : "json",  
                    success : function(data) {  
                        // 赋值total,用于计算  
                        total = data.total;  
                        //拼接html(这个部分根据自己的需求去实现)  
                        var list = data.pList;  
                        var html = &#39;<p>&#39;
                        for (var i = 0; i < list.length; i++) {  
                            html += "<p>" + list[i].name + "</p>"  
                        }  
                        html += &#39;</p>&#39;;  
                        $(&#39;.list&#39;).html(html)  
                    },  
                    error : function() {  
                        alert("请求超时,请重试!");  
                    }  
                });  
    };  
});


백엔드 코드:

  1. pojo object

package com.debo.map.pojo;  
public class People {  
    private String name;  
    private int limit;//用于分页  
    private int Offset;//用于分页  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public int getLimit() {  
        return limit;  
    }  
    public void setLimit(int limit) {  
        this.limit = limit;  
    }  
    public int getOffset() {  
        return Offset;  
    }  
    public void setOffset(int offset) {  
        Offset = offset;  
    }  
}

    controller code
  1. @RequestMapping(value="/getPeopleList",method = RequestMethod.GET)  
        @ResponseBody  
        public Map<String,Object> getPeopleList(HttpServletRequest request){  
            //创建对象,封装查询条件  
            People people = new People();  
            //获取每页记录数  
            int limit = Integer.parseInt(request.getParameter("rows"));  
            people.setLimit(limit);  
            //获取当前页数  
            int page = Integer.parseInt(request.getParameter("page"));  
            people.setOffset(page*limit);  
            Map<String, Object> map = new HashMap<String,Object>();  
            //查询总记录数  
            int total = mapService.countNumb();  
            map.put("total", total);  
            //查询当前页面需要的数据  
            List<People> pList = mapService.getPeopleList(people);  
            map.put("pList", pList);  
            return map;  
        }

  2. mapper 구성 sql 문
  3. <select id="countNumb" resultType="int">
            SELECT count(1)  
            FROM people  
    </select>
    <select id="getPeopleList" resultType="com.debo.map.pojo.People">
        SELECT * FROM people  
        LIMIT #{offset},#{limit}  
    </select>


五:实现一次性加载
js代码:

  1. $(function() {  
        //默认每一页显示5条数据  
        getMsg(5)  
        //分页实现函数  
        function getMsg(num) {  
            $.ajax({  
                url : ROOT+&#39;/map/getPeopleList&#39;,  
                type : &#39;GET&#39;,  
                dataType : &#39;json&#39;,  
                success : function(data) {  
                // 1.计算分页数量  
                var showNum = num;  
                var dataL = data.length;  
                var pageNum = Math.ceil(dataL / showNum);  
                $(&#39;.Pagination&#39;).pagination(pageNum,{  
                    num_edge_entries : 1,  
                    num_display_entries : 4,  
                    prev_text : "<<",  
                    next_text : ">>",  
                    callback : function(index) {  
                        var html = &#39;<p>&#39;
                        for (var i = showNum * index; i < showNum
                                * index + showNum; i++) {  
                            if (i < dataL) {  
                                html += "<p>" + data[i].name + "</p>"  
                            }  
                        }  
                        html += &#39;</p>&#39;;  
                        $(&#39;.list&#39;).html(html)  
                    })  
                }  
             })  
           }  
          }  
    })


后台代码:
pojo对象

package com.debo.map.pojo;  
public class People {  
    private String name;  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
}
  1. controller层代码

  2. @RequestMapping(value="/getPeopleList",method = RequestMethod.GET)  
    @ResponseBody  
    public List<People> getPeopleList(HttpServletRequest request){  
        List<People> pList = mapService.getPeopleList();  
        return pList;  
    }

mapper配置sql语句

  1. <select id="getPeopleList" resultType="com.debo.map.pojo.People">
        SELECT * from people  
    </select>

相关推荐:

jQuery Pagination分页插件详解

위 내용은 Jquery 페이징의 두 가지 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.