zoukankan      html  css  js  c++  java
  • 分页控件

    前端HTML相关代码:

    <div class="table-footer">
    	<nav>
    		<ul class="pagination" id="pageControl">
    		</ul>
    	</nav>
    	<div class="table-total"> 共 <span id="pageCount"></span> 页 </div>
    	<div class="table-skip"> 跳至 第 <input type="text" id="txtgoto" name="txtgoto" class="form-control" autocomplete="off" onblur="doGoToPage(this)" onkeydown="if (event.keyCode == 13) doGoToPage(this);"> 页</div>
    </div>

    JS生成分页控件的代码:

    function pagingData(data) {
        var prevpage = ``;
        var nextpage = ``;
        if (data.currentGroup == 1) {
            prevpage = `<li id="prev_page">
                            <a href = "javascript:;" style="background-color: gainsboro; border-color: gainsboro; cursor: text">
                                <span> &lt;&lt; </span>
                            </a >
                        </li >`;
        }
        else {
            prevpage = `<li id="prev_page" onclick="doPrevPage(${data.currentGroup})">
                            <a href = "javascript:;" >
                                <span> &lt;&lt; </span>
                            </a >
                        </li >`;
        }
        if (data.currentGroup == data.groupCount) {
            nextpage = `<li id="next_page">
                            <a href="javascript:;" style="background-color: gainsboro; border-color: gainsboro; cursor: text">
                                <span> &gt;&gt; </span>
                            </a>
                        </li>`;
        }
        else {
            nextpage = `<li id="next_page" onclick="doNextPage(${data.currentGroup})">
                            <a href="javascript:;">
                                <span> &gt;&gt; </span>
                            </a>
                        </li>`;
        }
        $("#pageControl").html(prevpage + nextpage);
        if (data.totalRecord == 0) {
            $("#prev_page").after('<li class="active"><a href="javascript:;">1</a></li>');
        }
        else {
            var curpage = 0;
            var num = Number(data.currentGroup) * Number(data.groupPageSize) > Number(data.pageCount) ? Number(data.pageCount) : Number(data.currentGroup) * Number(data.groupPageSize);
            for (var i = Number(data.pageStart); i <= num; i++) {
                var li = '';
                if (data.pageIndex == i) {
                    curpage++;
                    li = '<li class="active"><a href="javascript:;">' + i + '</a></li>';
                }
                else {
                    if (i == data.pageCount && curpage == 0) {
                        li = '<li class="active"><a href="javascript:;">' + i + '</a></li>';
                    }
                    else {
                        li = '<li class="" onclick="doPage(' + i + ')"><a href="javascript:;">' + i + '</a></li>';
                    }
                }
                $("#next_page").before(li);
            }
            $("#pageCount").html(data.pageCount);
        }
    }
    
    //其中Publish.search_params为全局变量
    //分页输入页码跳转
    function doGoToPage(e) {
        var pageCount = $("#pageCount").html();
        var pageIndex = $(e).val();
        if (!(/(^[1-9]d*$)/.test(pageIndex))) {
            layer.msg($.i18n.prop('publish.页码输入不正确'), { icon: 5 });
            $(e).val("");
            return;
        }
        if (Number(pageIndex) > Number(pageCount)) {
            layer.msg($.i18n.prop('publish.页码输入不正确'), { icon: 5 });
            $(e).val("");
            return;
        }
        var groupPageSize = 10;
        var currentGroup = Math.ceil(Number(pageIndex) * 1.0 / groupPageSize);
        Publish.search_params.pageIndex = pageIndex;
        Publish.search_params.currentGroup = currentGroup;
        Request.getPublishmsg();
    }
    
    //分页按钮跳转
    function doPage(pageIndex) {
        var groupPageSize = 10;
        var currentGroup = Math.ceil(Number(pageIndex) * 1.0 / groupPageSize);
        Publish.search_params.pageIndex = pageIndex;
        Publish.search_params.currentGroup = currentGroup;
        Request.getPublishmsg();
    }
    
    //上一个分页组
    function doPrevPage(currentGroup) {
        var groupPageSize = 10;
        currentGroup = currentGroup - 1;
        var pageIndex = (currentGroup - 1) * groupPageSize + 1;
        Publish.search_params.pageIndex = pageIndex;
        Publish.search_params.currentGroup = currentGroup;
        Request.getPublishmsg();
    }
    
    //下一个分页组
    function doNextPage(currentGroup) {
        var groupPageSize = 10;
        currentGroup = currentGroup + 1;
        var pageIndex = (currentGroup - 1) * groupPageSize + 1;
        Publish.search_params.pageIndex = pageIndex;
        Publish.search_params.currentGroup = currentGroup;
        Request.getPublishmsg();
    }

    后端部分相关代码:

    string userId = clist[0];
    int pageIndex = Convert.ToInt32(clist[1]);//前端传过来的要跳转的页码
    int currentGroup = Convert.ToInt32(clist[2]);//前端传过来的当前分组
    int pageSize = 13;//每页显示的数量
    int groupPageSize = 10;//每个分组的数量(1~10页为一组)
    int totalRecord = bl.GetPlanRelesseCount(userId, whereStr);//计算数据库表的总数,分组分页用
    double pageCount = Math.Ceiling(totalRecord * 1.0 / pageSize);//总页码
    double groupCount = Math.Ceiling(pageCount * 1.0 / groupPageSize);//总分组
    List<JPlanRelease> jlist = bl.GetPlanRelesseData(userId, pageIndex, pageSize, whereStr, orderStr);//每页的数据
    
    page_Release_Json prj = new page_Release_Json();
    prj.releaseList = jlist;
    prj.pageIndex = pageIndex;//返回给前端的页码
    prj.pageSize = pageSize;//每页显示的数量
    prj.totalRecord = totalRecord;//总数量
    prj.pageCount = Convert.ToInt32(pageCount);//总页码
    prj.groupCount = Convert.ToInt32(groupCount);//总分组
    prj.pageStart = ((currentGroup - 1) * groupPageSize + 1);//从哪一页开始加载
    prj.groupPageSize = groupPageSize;//每个分组的数量(1~10页为一组)
    prj.currentGroup = currentGroup;//返回给前端的当前分组
    
    returnStr = JsonHelper.RequestSuccess(JsonConvert.SerializeObject(prj));//JSON格式返回给前端
    
    
    #region 分页类,返回给前端的数据
    /// <summary>
    /// 分页类
    /// </summary>
    public class paging_Json
    {
        /// <summary>
        /// 当前页
        /// </summary>
        public int pageIndex { get; set; }
        /// <summary>
        /// 从哪页开始加载
        /// </summary>
        public int pageStart { get; set; }
        /// <summary>
        /// 每页显示数据条数
        /// </summary>
        public int pageSize { get; set; }
        /// <summary>
        /// 总页数
        /// </summary>
        public int pageCount { get; set; }
        /// <summary>
        /// 总数据
        /// </summary>
        public int totalRecord { get; set; }
        /// <summary>
        /// 当前组
        /// </summary>
        public int currentGroup { get; set; }
        /// <summary>
        /// 分组总数
        /// </summary>
        public int groupCount { get; set; }
        /// <summary>
        /// 每组显示页数
        /// </summary>
        public int groupPageSize { get; set; }
    }
    
    public class page_Release_Json : paging_Json
    {
        public List<JPlanRelease> releaseList = new List<JPlanRelease>();
    }
    #endregion
    
    

    效果图:

  • 相关阅读:
    MySql查询分页数据
    出现不不能引java.util.Date包的情况
    类的反射实例(servlet的抽取)
    关于C++ const 的全面总结
    教你用笔记本破解无线路由器password
    使用 HTML5 webSocket API实现即时通讯的功能
    用户研究经验分享
    我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
    用户參与记录存储的演变
    IC芯片
  • 原文地址:https://www.cnblogs.com/zt102545/p/13940243.html
Copyright © 2011-2022 走看看