zoukankan      html  css  js  c++  java
  • c#获得伪静态页码

    /// <summary>
    /// 获得页码显示链接
    /// </summary>
    /// <param name="curPage">当前页数</param>
    /// <param name="countPage">总页数</param>
    /// <param name="url">超级链接地址</param>
    /// <param name="extendPage">周边页码显示个数上限</param>
    /// <returns>页码html</returns>
    public static string GetPageNumbers(int curPage, int countPage, string url, int extendPage)
    {
    return GetPageNumbers(curPage, countPage, url, extendPage, "page");
    }

    /// <summary>
    /// 获得页码显示链接
    /// </summary>
    /// <param name="curPage">当前页数</param>
    /// <param name="countPage">总页数</param>
    /// <param name="url">超级链接地址</param>
    /// <param name="extendPage">周边页码显示个数上限</param>
    /// <param name="pagetag">页码标记</param>
    /// <returns>页码html</returns>
    public static string GetPageNumbers(int curPage, int countPage, string url, int extendPage, string pagetag)
    {
    return GetPageNumbers(curPage, countPage, url, extendPage, pagetag, null);
    }

    /// <summary>
    /// 获得页码显示链接
    /// </summary>
    /// <param name="curPage">当前页数</param>
    /// <param name="countPage">总页数</param>
    /// <param name="url">超级链接地址</param>
    /// <param name="extendPage">周边页码显示个数上限</param>
    /// <param name="pagetag">页码标记</param>
    /// <param name="anchor">锚点</param>
    /// <returns>页码html</returns>
    public static string GetPageNumbers(int curPage, int countPage, string url, int extendPage, string pagetag, string anchor)
    {
    if (pagetag == "")
    pagetag
    = "page";
    int startPage = 1;
    int endPage = 1;

    if (url.IndexOf("?") > 0)
    url
    = url + "&";
    else
    url
    = url + "?";

    string t1 = "<a href=\"" + url + "&" + pagetag + "=1";
    string t2 = "<a href=\"" + url + "&" + pagetag + "=" + countPage;
    if (anchor != null)
    {
    t1
    += anchor;
    t2
    += anchor;
    }
    t1
    += "\">&laquo;</a>";
    t2
    += "\">&raquo;</a>";

    if (countPage < 1)
    countPage
    = 1;
    if (extendPage < 3)
    extendPage
    = 2;

    if (countPage > extendPage)
    {
    if (curPage - (extendPage / 2) > 0)
    {
    if (curPage + (extendPage / 2) < countPage)
    {
    startPage
    = curPage - (extendPage / 2);
    endPage
    = startPage + extendPage - 1;
    }
    else
    {
    endPage
    = countPage;
    startPage
    = endPage - extendPage + 1;
    t2
    = "";
    }
    }
    else
    {
    endPage
    = extendPage;
    t1
    = "";
    }
    }
    else
    {
    startPage
    = 1;
    endPage
    = countPage;
    t1
    = "";
    t2
    = "";
    }

    StringBuilder s
    = new StringBuilder("");

    s.Append(t1);
    for (int i = startPage; i <= endPage; i++)
    {
    if (i == curPage)
    {
    s.Append(
    "<span>");
    s.Append(i);
    s.Append(
    "</span>");
    }
    else
    {
    s.Append(
    "<a href=\"");
    s.Append(url);
    s.Append(pagetag);
    s.Append(
    "=");
    s.Append(i);
    if (anchor != null)
    {
    s.Append(anchor);
    }
    s.Append(
    "\">");
    s.Append(i);
    s.Append(
    "</a>");
    }
    }
    s.Append(t2);

    return s.ToString();
    }

    /// <summary>
    /// 判断文件流是否为UTF8字符集
    /// </summary>
    /// <param name="sbInputStream">文件流</param>
    /// <returns>判断结果</returns>
    private static bool IsUTF8(FileStream sbInputStream)
    {
    int i;
    byte cOctets; // octets to go in this UTF-8 encoded character
    byte chr;
    bool bAllAscii = true;
    long iLen = sbInputStream.Length;

    cOctets
    = 0;
    for (i = 0; i < iLen; i++)
    {
    chr
    = (byte)sbInputStream.ReadByte();

    if ((chr & 0x80) != 0) bAllAscii = false;

    if (cOctets == 0)
    {
    if (chr >= 0x80)
    {
    do
    {
    chr
    <<= 1;
    cOctets
    ++;
    }
    while ((chr & 0x80) != 0);

    cOctets
    --;
    if (cOctets == 0)
    return false;
    }
    }
    else
    {
    if ((chr & 0xC0) != 0x80)
    return false;

    cOctets
    --;
    }
    }

    if (cOctets > 0)
    return false;

    if (bAllAscii)
    return false;

    return true;
    }
    /// <summary>
    /// 获得伪静态页码显示链接
    /// </summary>
    /// <param name="curPage">当前页数</param>
    /// <param name="countPage">总页数</param>
    /// <param name="url">超级链接地址</param>
    /// <param name="extendPage">周边页码显示个数上限</param>
    /// <returns>页码html</returns>
    public static string GetStaticPageNumbers(int curPage, int countPage, string url, string expname, int extendPage)
    {
    return GetStaticPageNumbers(curPage, countPage, url, expname, extendPage, 0);
    }


    /// <summary>
    /// 获得伪静态页码显示链接
    /// </summary>
    /// <param name="curPage">当前页数</param>
    /// <param name="countPage">总页数</param>
    /// <param name="url">超级链接地址</param>
    /// <param name="extendPage">周边页码显示个数上限</param>
    /// <param name="forumrewrite">当前版块是否使用URL重写</param>
    /// <returns>页码html</returns>
    public static string GetStaticPageNumbers(int curPage, int countPage, string url, string expname, int extendPage, int forumrewrite)
    {
    int startPage = 1;
    int endPage = 1;

    string t1 = "<a href=\"" + url + "-1" + expname + "\">&laquo;</a>";
    string t2 = "<a href=\"" + url + "-" + countPage + expname + "\">&raquo;</a>";

    if (forumrewrite == 1)
    {
    t1
    = "<a href=\"" + url + "/1/list" + expname + "\">&laquo;</a>";
    t2
    = "<a href=\"" + url + "/" + countPage + "/list" + expname + "\">&raquo;</a>";
    }

    if (forumrewrite == 2)
    {
    t1
    = "<a href=\"" + url + "/\">&laquo;</a>";
    t2
    = "<a href=\"" + url + "/" + countPage + "/\">&raquo;</a>";
    }

    if (countPage < 1) countPage = 1;
    if (extendPage < 3) extendPage = 2;

    if (countPage > extendPage)
    {
    if (curPage - (extendPage / 2) > 0)
    {
    if (curPage + (extendPage / 2) < countPage)
    {
    startPage
    = curPage - (extendPage / 2);
    endPage
    = startPage + extendPage - 1;
    }
    else
    {
    endPage
    = countPage;
    startPage
    = endPage - extendPage + 1;
    t2
    = "";
    }
    }
    else
    {
    endPage
    = extendPage;
    t1
    = "";
    }
    }
    else
    {
    startPage
    = 1;
    endPage
    = countPage;
    t1
    = "";
    t2
    = "";
    }

    StringBuilder s
    = new StringBuilder("");

    s.Append(t1);
    for (int i = startPage; i <= endPage; i++)
    {
    if (i == curPage)
    {
    s.Append(
    "<span>");
    s.Append(i);
    s.Append(
    "</span>");
    }
    else
    {
    s.Append(
    "<a href=\"");
    if (forumrewrite == 1)
    {
    s.Append(url);
    if (i != 1)
    {
    s.Append(
    "/");
    s.Append(i);
    }
    s.Append(
    "/list");
    s.Append(expname);
    }
    else if (forumrewrite == 2)
    {
    s.Append(url);
    s.Append(
    "/");
    if (i != 1)
    {
    s.Append(i);
    s.Append(
    "/");
    }
    }
    else
    {
    s.Append(url);
    if (i != 1)
    {
    s.Append(
    "-");
    s.Append(i);
    }
    s.Append(expname);
    }
    s.Append(
    "\">");
    s.Append(i);
    s.Append(
    "</a>");
    }
    }
    s.Append(t2);

    return s.ToString();
    }


    /// <summary>
    /// 获得帖子的伪静态页码显示链接
    /// </summary>
    /// <param name="expname"></param>
    /// <param name="countPage">总页数</param>
    /// <param name="url">超级链接地址</param>
    /// <param name="extendPage">周边页码显示个数上限</param>
    /// <returns>页码html</returns>
    public static string GetPostPageNumbers(int countPage, string url, string expname, int extendPage)
    {
    int startPage = 1;
    int endPage = 1;
    int curPage = 1;

    string t1 = "<a href=\"" + url + "-1" + expname + "\">&laquo;</a>";
    string t2 = "<a href=\"" + url + "-" + countPage + expname + "\">&raquo;</a>";

    if (countPage < 1) countPage = 1;
    if (extendPage < 3) extendPage = 2;

    if (countPage > extendPage)
    {
    if (curPage - (extendPage / 2) > 0)
    {
    if (curPage + (extendPage / 2) < countPage)
    {
    startPage
    = curPage - (extendPage / 2);
    endPage
    = startPage + extendPage - 1;
    }
    else
    {
    endPage
    = countPage;
    startPage
    = endPage - extendPage + 1;
    t2
    = "";
    }
    }
    else
    {
    endPage
    = extendPage;
    t1
    = "";
    }
    }
    else
    {
    startPage
    = 1;
    endPage
    = countPage;
    t1
    = "";
    t2
    = "";
    }

    StringBuilder s
    = new StringBuilder("");

    s.Append(t1);
    for (int i = startPage; i <= endPage; i++)
    {
    s.Append(
    "<a href=\"");
    s.Append(url);
    s.Append(
    "-");
    s.Append(i);
    s.Append(expname);
    s.Append(
    "\">");
    s.Append(i);
    s.Append(
    "</a>");
    }
    s.Append(t2);

    return s.ToString();
    }
  • 相关阅读:
    Mysql 怎么限制 IP 访问?
    LA2965 n个数中选出最多个数异或和为0
    UVALive 2678 大于s的最短子序列和
    UVA 1193 区间相关(greedy)
    UVA 11992 线段树
    UVA 1400 线段树
    NBUT 1120 线段树
    最大连续区间和的算法总结(转)
    hiho 1015 KMP
    hiho#1128 : 二分·二分查找
  • 原文地址:https://www.cnblogs.com/jhabb/p/2038773.html
Copyright © 2011-2022 走看看