手写分页

Posted liyazi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手写分页相关的知识,希望对你有一定的参考价值。

<tr>
                <td>
                    <input type="button" value="|<" onclick="first()" />
                    <input type="button" value="<<" onclick="prev()" />
                    <input type="text" value="1" id="PageIndex" />
                    <input type="button" value=">>" onclick="next()" />
                    <input type="button" value=">|" onclick="last()" />
                </td>
            </tr>

这是手写分页前台代码

点击空间之后获取onclick事件,调用ajax请求后台

 $(function () {
        GetData();
    })
    var MaxPagerCount = 1;
    function GetData() {
        var pageIndex = $("#PageIndex").val();
        $.ajax({
            url: /Default1/Show,
            type: get,
            data: { pageindex: pageIndex},
            dataType: json,
            success: function (data) {
                $("#aaa").empty();
                MaxPagerCount = data.PageCount;
                $(data).each(function () {
                    $("#aaa").append("<tr><td>" + this.ID + "</td><td>" + this.Name + "</td></tr>");
                })
            }
        })
    }

页面首次加载,请求后台查询数据库,返回查询到的数据进行绑定

 public ActionResult Index()
        {
            return View();
        }
        int PageCount = 0;
        [HttpGet]
        public List<dsdf> Show(int pageindex=1)
        {
            string str = "select * from Address";
            DataTable dt = DBHelper.GetTable(str);
            List<Stu> s =JsonConvert.DeserializeObject<List<Stu>>(JsonConvert.SerializeObject(dt));
            var linq = (from a in s
                       select a).Skip((pageindex - 1) * 5).Take(5);
            if (linq.Count() % 5 == 0)
            {
                 PageCount = linq.Count() / 5;
            }
            else {
                 PageCount = linq.Count() / 5+1;
            }
            dsdf df = new dsdf();
            df.PageCount = PageCount;
            return JsonConvert.DeserializeObject<List<dsdf>>(JsonConvert.SerializeObject(linq));
          
        }

首次加载后台代码

把查询到的数据用Linq语句进行分页

Skip是跳过多少条,Take是从你跳过的位置开始取多少条数据

 function first() {
        $("#PageIndex").val(1);
        GetData();
    }

    function last() {
        $("#PageIndex").val(MaxPagerCount);
        GetData();
    }

    function prev() {
        var pageindex = $("#PageIndex").val() - 1;
        if (pageindex < 1)
            pageindex = 1;

        $("#PageIndex").val(pageindex);
        GetData();
    }

    function next() {
        var pageindex = parseInt($("#PageIndex").val()) + 1;
        if (pageindex > MaxPagerCount)
            pageindex = MaxPagerCount;
        $("#PageIndex").val(pageindex);
        GetData();
    }

根据你前台获取的点击事件对你定义的变量进行加减,确认你要到达哪一页

以上是关于手写分页的主要内容,如果未能解决你的问题,请参考以下文章

手写分页

Django手写分页

vue 手写分页组件

modx - 当我在同上片段中使用“&documents =”参数时,分页不起作用

片段被视图分页器布局切割

JavaWeb手写一个Servlet+JSP+JavaBean分页