zoukankan      html  css  js  c++  java
  • 长文章手动分页显示代码

      项目过程中遇到一篇文章篇幅很长,下拉查看非常不便,

    此方法实现长文章的手动分页,在后台添加内容过程中,我以“|”作为分页的标志,

    1、webConfig中的设置。

    <appSettings>
        <add key="PagerSplit" value="|"/>
    </appSettings>

    当然你也可以设置其他字符作为分页标志。

    2、页面上的代码。

    <table width="95%" align="center" border="0" class="tablecol" >
      
        <tr  bgcolor="">
            <td align="left"><asp:Label ID="content" runat="server"></asp:Label></td>
        </tr>
     </table>
          <asp:label id="currentpage" runat="server" CssClass="gray">当前页</asp:label> 
                                            <asp:label id="totalpage" runat="server" CssClass="gray"></asp:label> 
                 <asp:hyperlink id="lnkfist" runat="server" CssClass="gray">首页</asp:hyperlink>|
                 <asp:hyperlink id="lnkprev" runat="server" CssClass="gray">前页</asp:hyperlink>|
                 <asp:hyperlink id="lnknext" runat="server" CssClass="gray">下页</asp:hyperlink>|
                 <asp:hyperlink id="lnklast" runat="server" CssClass="gray">尾页</asp:hyperlink>

    3、后台代码。

      首先,在后台定义一个私有类型的公共变量,在Page_Load方法的外面

    private ContentPager pager;

    Page_Load方法里面的代码

    文章标题、发文时间、作者、来源之类的信息要单独绑定,不和内容信息一起,因为它们在翻页后是不变的。下面列出绑定代码:

     1 DataSet ds = sadsdd.ExcuteToDataSet("查询语句");
     2                     dlContent.DataSource = ds;
     3                     dlContent.DataBind();
     4                     DataRow drow;
     5                     drow = ds.Tables["mytable"].Rows[0];
     6                     string cont = drow["news_content"].ToString();//此部分可以把内容中的HTML代码转换一下,我也省略了
     7                     //文章分页,关键部分
     8                     pager = new ContentPager();
     9                     pager.Lnknext = this.lnknext;
    10                     pager.Lnkprev = this.lnkprev;
    11                     pager.Lnklast = this.lnklast;
    12                     pager.Lnkfist = this.lnkfist;
    13                     pager.Pagenum = this.currentpage;
    14                     pager.Pagecount = this.totalpage;
    15                     pager.DisplayContent = this.content;
    16                     string query = "&id=" + Request.QueryString["id"].ToString();
    17                     pager.datapager(cont, query);

    其中的dlContent为文章的标题以及发文时间,作者之类的信息。

    本分页代码中需要用到的类

      1 public class ContentPager:System.Web.UI.Page
      2     {
      3         private System.Web.UI.WebControls.HyperLink lnknext;
      4         private System.Web.UI.WebControls.HyperLink lnkprev;
      5         private System.Web.UI.WebControls.HyperLink lnkfist;
      6         private System.Web.UI.WebControls.HyperLink lnklast;
      7         private System.Web.UI.WebControls.Label pagenum;
      8         private System.Web.UI.WebControls.Label pagecount;
      9         private System.Web.UI.WebControls.Label displaycontent;
     10         public ContentPager()
     11         {
     12             //
     13             // TODO: 在此处添加构造函数逻辑
     14             //
     15         }
     16         public void datapager(string content, string query)
     17         {
     18             string PagerSplit = System.Configuration.ConfigurationManager.AppSettings["PagerSplit"];//从web.config中获取分页符,当然这里可以自己定义,为了方便还是放到配置文件或者数据库中。
     19             string[] contentArray = StringSplit(content, PagerSplit);//这里是一个方法,摘自网上
     20             int PageCount = contentArray.Length;
     21             this.pagecount.Text = "共<b><font color='#FF0000'>" + PageCount.ToString() + "</font></b>页";
     22             int CurPage;
     23             //确定当前页数
     24             if (System.Web.HttpContext.Current.Request.Params["Page"] != null)
     25             {
     26                 CurPage = Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]);
     27             }
     28             else
     29             {
     30                 CurPage = 1;
     31             }
     32             if (CurPage < 1) CurPage = 1;
     33             if (Convert.ToInt32(System.Web.HttpContext.Current.Request.Params["Page"]) > PageCount)
     34             {
     35                 CurPage = PageCount;
     36             }
     37             //显示当前页数
     38             this.pagenum.Text = "第<b><font color='#FF0000'>" + CurPage.ToString() + "</font></b>页";
     39             //下一页
     40             if (CurPage != PageCount)
     41             {
     42                 lnknext.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1) + query;
     43             }
     44             //上一页
     45             if (CurPage > 1)
     46             {
     47                 lnkprev.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1) + query;
     48             }
     49             //第一页
     50             if (CurPage != 1)
     51             {
     52                 lnkfist.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1) + query;
     53             }
     54             //最后一页
     55             if (CurPage != PageCount)
     56             {
     57                 lnklast.NavigateUrl = System.Web.HttpContext.Current.Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(PageCount) + query;
     58             }
     59             displaycontent.Text = contentArray[CurPage - 1].ToString();
     60         }
     61  
     62         #region  System.Web.UI.WebControls.HyperLink DisplayContent
     63         public System.Web.UI.WebControls.Label DisplayContent
     64         {
     65             get
     66             {
     67                 return this.DisplayContent;
     68             }
     69             set
     70             {
     71                 this.displaycontent = value;
     72             }
     73         }
     74         #endregion
     75         #region  System.Web.UI.WebControls.HyperLink Lnkprev
     76         public System.Web.UI.WebControls.HyperLink Lnkprev
     77         {
     78             get
     79             {
     80                 return this.lnkprev;
     81             }
     82             set
     83             {
     84                 this.lnkprev = value;
     85             }
     86         }
     87         #endregion
     88         #region System.Web.UI.WebControls.HyperLink Lnknext
     89         public System.Web.UI.WebControls.HyperLink Lnknext
     90         {
     91             get
     92             {
     93                 return this.lnknext;
     94             }
     95             set
     96             {
     97                 this.lnknext = value;
     98             }
     99         }
    100         #endregion
    101         #region  System.Web.UI.WebControls.HyperLink Lnkfist
    102         public System.Web.UI.WebControls.HyperLink Lnkfist
    103         {
    104             get
    105             {
    106                 return this.lnkfist;
    107             }
    108             set
    109             {
    110                 this.lnkfist = value;
    111             }
    112         }
    113         #endregion
    114         #region  System.Web.UI.WebControls.HyperLink Lnklast
    115         public System.Web.UI.WebControls.HyperLink Lnklast
    116         {
    117             get
    118             {
    119                 return this.lnklast;
    120             }
    121             set
    122             {
    123                 this.lnklast = value;
    124             }
    125         }
    126         #endregion
    127         #region  System.Web.UI.WebControls.Label Pagenum
    128         public System.Web.UI.WebControls.Label Pagenum
    129         {
    130             get
    131             {
    132                 return this.pagenum;
    133             }
    134             set
    135             {
    136                 this.pagenum = value;
    137             }
    138         }
    139         #endregion
    140         #region System.Web.UI.WebControls.Label Pagecount
    141         public System.Web.UI.WebControls.Label Pagecount
    142         {
    143             get
    144             {
    145                 return this.pagecount;
    146             }
    147             set
    148             {
    149                 this.pagecount = value;
    150             }
    151         }
    152         #endregion
    153         #region 将字符串分割成数组
    154         /// <summary>
    155         /// 将字符串分割成数组
    156         /// </summary>
    157         /// <param name="strSource"></param>
    158         /// <param name="strSplit"></param>
    159         /// <returns></returns>
    160         public string[] StringSplit(string strSource, string strSplit)
    161         {
    162             string[] strtmp = new string[1];
    163             int index = strSource.IndexOf(strSplit, 0);
    164             if (index < 0)
    165             {
    166                 strtmp[0] = strSource;
    167                 return strtmp;
    168             }
    169             else
    170             {
    171                 strtmp[0] = strSource.Substring(0, index);
    172                 return StringSplit(strSource.Substring(index + strSplit.Length), strSplit, strtmp);
    173             }
    174         }
    175         #endregion
    176         #region 采用递归将字符串分割成数组
    177         /// <summary>
    178         /// 采用递归将字符串分割成数组
    179         /// </summary>
    180         /// <param name="strSource"></param>
    181         /// <param name="strSplit"></param>
    182         /// <param name="attachArray"></param>
    183         /// <returns></returns>
    184         private string[] StringSplit(string strSource, string strSplit, string[] attachArray)
    185         {
    186             string[] strtmp = new string[attachArray.Length + 1];
    187             attachArray.CopyTo(strtmp, 0);
    188             int index = strSource.IndexOf(strSplit, 0);
    189             if (index < 0)
    190             {
    191                 strtmp[attachArray.Length] = strSource;
    192                 return strtmp;
    193             }
    194             else
    195             {
    196                 strtmp[attachArray.Length] = strSource.Substring(0, index);
    197                 return StringSplit(strSource.Substring(index + strSplit.Length), strSplit, strtmp);
    198             }
    199         }
    200         #endregion
    201     }
  • 相关阅读:
    面向对象--接口的实际应用--制定标准
    iconv命令 gbk 转 UTF-8
    map,list
    springMVC配置(XML配置详解)
    关于git-Git 分支管理和冲突解决
    使用Intellij idea开发
    Centos7.2 Install subversion server
    Nginx 多域名配置
    Nginx 解析PHP的原理 | CGI、FastCGI及php-fpm的关系
    Centos7 Yum安装 PHP5.5,5.6,7.0
  • 原文地址:https://www.cnblogs.com/Chaser-Eagle/p/3684738.html
Copyright © 2011-2022 走看看