qq_41712950 2018-12-17 11:10 采纳率: 54.5%
浏览 269

求解这个分页算法最后一个字符串参数是什么意思?

public string ToString(int total, int pageSize, int pageIndex, string query_string)
{

        int allpage = 0;
        int next = 0;
        int pre = 0;
        int startcount = 0;
        int endcount = 0;
        StringBuilder pagestr = new StringBuilder();
        pageIndex = pageIndex == 0 ? 1 : pageIndex;
        pagestr.AppendFormat("<div class=\"{0}\" >", SetClassName);
        if (pageIndex < 1) { pageIndex = 1; }
        //计算总页数
        if (pageSize != 0)
        {
            allpage = (total / pageSize);
            allpage = ((total % pageSize) != 0 ? allpage + 1 : allpage);
            allpage = (allpage == 0 ? 1 : allpage);
        }
        next = pageIndex + 1;
        pre = pageIndex - 1;
        startcount = (pageIndex + 5) > allpage ? allpage - 9 : pageIndex - 4;//中间页起始序号
        //中间页终止序号
        endcount = pageIndex < 5 ? 10 : pageIndex + 5;
        if (startcount < 1) { startcount = 1; } //为了避免输出的时候产生负数,设置如果小于1就从序号1开始
        if (allpage < endcount) { endcount = allpage; }//页码+5的可能性就会产生最终输出序号大于总页码,那么就要将其控制在页码数之内

        bool isFirst = pageIndex == 1;
        bool isLast = pageIndex == allpage;

        if (SetIsShowText)
            pagestr.AppendFormat(SetTextFormat, total, pageIndex, allpage);

        if (isFirst)
        {
            pagestr.Append("<span>首页</span> <span>上一页</span>");
        }
        else
        {
            pagestr.AppendFormat("<a href=\"{0}pageIndex=1\">首页</a> <a href=\"{0}pageIndex={1}\">上一页</a>", query_string, pre);
        }
        //中间页处理,这个增加时间复杂度,减小空间复杂度
        for (int i = startcount; i <= endcount; i++)
        {
            bool isCurent = pageIndex == i;
            if (isCurent)
            {
                pagestr.Append(" <a class=\"page_current\">" + i + "</a>");
            }
            else
            {
                pagestr.Append("  <a href=\"" + query_string + "pageIndex=" + i + "\">" + i + "</a>");
            }

        }
        if (isLast)
        {
            pagestr.Append("<span>下一页</span> <span>末页</span>");
        }
        else
        {
            pagestr.Append(" <a href=\"" + query_string + "pageIndex=" + next + "\">下一页</a> <a href=\"" + query_string + "pageIndex=" + allpage + "\">末页</a>");
        }
        pagestr.AppendFormat("</div>");
        return ConversionData(pagestr.ToString());
    }
  • 写回答

4条回答 默认 最新

  • terrywangX 2018-12-17 12:09
    关注

    比如说在一个商品查询页面,查询价格大于1000的商品,这个页面的URL中应该包含price__from=1000这样的查询条件,在分页算法中,
    price__from=1000等查询条件作为queryString参数传入,这样一来,在生成的分页链接中就能继承以上查询条件。

    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧