创建自定义分页控件

在做JAVA项目的时候,写了一个分页控件,想着C#的朋友有可能需要,就用C#写了一个,数据方面分页的方法网上很多,就不重复了,话不多说,下面是UI端代码:

/// <summary>
    /// 创建自定义分页控件,返回HTML代码
    /// </summary>
    /// <returns></returns>
    private string CreatePager()
    {
        StringBuilder sb = new StringBuilder();

        //当前页
        int currPage = 1;

        //获取URL页码参数
        if (Request.QueryString["page"] != null)
        {
            currPage = int.Parse(Request.QueryString["page"]);
        }

        //总页数
        int pageCount = 18;

        //显示页码数
        int pageNum = 5;

        /以上参数是可以动态调整的,下面是算法/

        //上一页
        int prevPage = 1;

        //下一页
        int nextPage = prevPage + pageNum;

        sb.Append("<ul class=\"pagination\">");

        //首页
        sb.Append("<li class=\"paginate_button previous\"><a href=\"Name.aspx?active=11,12&page=1\">首页</a></li>");

        int count = 0;

        int currCount = 0;

        for (int i = 1; i <= pageCount; i++)
        {
            if (i == currPage)
            {
                currCount = count;
            }

            if (i % pageNum == 0)
            {
                if (i < pageCount)
                {
                    count++;
                }
            }
        }

        if (currPage > pageNum)
        {
            prevPage = pageNum * currCount;
            sb.Append("<li class=\"paginate_button\"><a href=\"Name.aspx?active=11,12&page=" + prevPage.ToString() + "\">...</a></li>");
        }

        int start = pageNum * currCount + 1;
        int end = pageNum * currCount + pageNum;

        for (int i = start; i <= end; i++)
        {
            if (i <= pageCount)
            {
                if (i == currPage)
                {
                    sb.Append("<li class=\"paginate_button active\"><a href=\"Name.aspx?active=11,12&page=" + i.ToString() + "\">" + i.ToString() + "</a></li>");
                }
                else
                {
                    sb.Append("<li class=\"paginate_button\"><a href=\"Name.aspx?active=11,12&page=" + i.ToString() + "\">" + i.ToString() + "</a></li>");
                }
            }
        }

        if (currCount < count)
        {
            nextPage = pageNum * currCount + nextPage;
            sb.Append("<li class=\"paginate_button\"><a href=\"Name.aspx?active=11,12&page=" + nextPage.ToString() + "\">...</a></li>");
        }

        //尾页
        sb.Append("<li class=\"paginate_button next\"><a href=\"Name.aspx?active=11,12&page=" + pageCount.ToString() + "\">尾页</a></li>");

        sb.Append("</ul>");

        return sb.ToString();
    }

猜你喜欢

转载自blog.csdn.net/mojocube/article/details/79931723
今日推荐