广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    asp.net 文章内容分页显示的代码

    2018-05-08 11:29:16 次阅读 稿源:互联网
    广告
    aspx:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ArticlePage.aspx.cs" Inherits="ArticlePage" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
    <title>文章分页</title>
    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <table style="text-align: center;" cellpadding="0" cellspacing="0">
    <tr>
    <td align="left" style="width: 400px; background-color: #ffff99;">
    <table style="width: 100%">
    <tr>
    <td style="width: 100%; border-top: #ff3300 2px dotted; border-left-width: 2px; border-left-color: #ff3300; border-bottom: #ff3300 2px dotted; border-right-width: 2px; border-right-color: #ff3300; height: 25px; text-align: center;">
    <%=ArticleTitle %></td>
    </tr>
    </table>
    </td>
    </tr>
    <tr>
    <td style="width: 400px; height: 100%;" align="left">
    <p style="background-color: oldlace">
    <%=Article %>
    </p>
    </td>
    </tr>
    <tr>
    <td style="width: 400px; background-color: #ffff99; height: 48px;">
    <table style="width: 100%">
    <tr>
    <td style="width: 100%; border-top: #ff3300 2px dotted; border-left-width: 2px; border-left-color: #ff3300; border-bottom: #ff3300 2px dotted; border-right-width: 2px; border-right-color: #ff3300;" align="left">
    <p>
    <asp:HyperLink ID="firstLink" runat="server" Visible="False">首页</asp:HyperLink>
    <asp:HyperLink ID="preLink" runat="server" Visible="False">上一页</asp:HyperLink>
    <asp:HyperLink ID="nextLink" runat="server" Visible="False">下一页</asp:HyperLink>
    <asp:HyperLink ID="lastLink" runat="server" Visible="False">末页</asp:HyperLink>
    </p>
    <p>
    <%
    if(pageSum>1)
    {
    for (int i = 1; i <= pageSum; i++)
    {
    if (pageNo == i)
    {
    %>
    <%=i%>
    <%
    }
    else
    {
    %>
    <a href="?page=<%=i %>"><%=i%></a>
    <%
    }
    }
    }
    %>
    页数:<%=pageNo %>/<%=pageSum %>
    </p></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    <br />
    </div>
    </form>
    </body>
    </html>
    //==========================
    aspx.cs:
    (C#)
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    public partial class ArticlePage : System.Web.UI.Page
    {
    protected string Article = "", ArticleTitle="";
    protected int pageNo = 1, pageSum = 1;
    protected void Page_Load(object sender, EventArgs e)
    {
    //实际应用中,此处的数据通过操作数据库来获取
    ArticleTitle = "文章标题";
    string filename = "20091795819.html";
    string mPath = Server.MapPath("h3g/");
    string filepath = mPath + filename;
    ShowArticle(filepath);
    }
    protected void ShowArticle(string filepath)
    {
    string page = Request.Params["page"];
    int perPageLine = 5;//每页行数
    ArrayList al = fileOpr.ReadFileContentToArrayList(filepath);//按行读取文件内空到数组中
    int contentLine = al.Count;
    pageSum = (int)System.Math.Ceiling((double)contentLine / perPageLine);//总页数,进1取整
    if (page == null || page == "" || page == "1")
    {
    pageNo = 1;
    if (contentLine <= perPageLine)
    {
    for (int i = 0; i < contentLine; i++)
    {
    Article += al[i].ToString();
    }
    }
    else
    {
    for (int i = 0; i < perPageLine; i++)
    {
    Article += al[i].ToString();
    }
    firstLink.Visible = false;
    preLink.Visible = false;
    nextLink.NavigateUrl = "?page=" + (pageNo + 1);
    nextLink.Visible = true;
    lastLink.NavigateUrl = "?page=" + pageSum;
    lastLink.Visible = true;
    }
    }
    else
    {
    pageNo = int.Parse(page);
    if (pageNo < pageSum)
    {
    for (int i = perPageLine * (pageNo - 1); i < perPageLine * pageNo; i++)
    {
    Article += al[i].ToString();
    }
    firstLink.NavigateUrl = "?page=1";
    firstLink.Visible = true;
    preLink.NavigateUrl = "?page=" + (pageNo - 1);
    preLink.Visible = true;
    nextLink.NavigateUrl = "?page=" + (pageNo + 1);
    nextLink.Visible = true;
    lastLink.NavigateUrl = "?page=" + pageSum;
    lastLink.Visible = true;
    }
    else
    {
    for (int i = contentLine - perPageLine * (pageSum - 1); i < contentLine; i++)
    {
    Article += al[i].ToString();
    }
    firstLink.NavigateUrl = "?page=1";
    firstLink.Visible = true;
    preLink.NavigateUrl = "?page=" + (pageNo - 1);
    preLink.Visible = true;
    nextLink.Visible = false;
    lastLink.Visible = false;
    }
    }
    }
    }
    重用类fileOpr.cs:
    fileOpr.ReadFileContentToArrayList(filepath);中的方法:
    public static ArrayList ReadFileContentToArrayList(string filepath)
    {
    ArrayList al = new ArrayList();
    FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
    StreamReader srd = new StreamReader(fs, Encoding.Default);
    //使用StreamReader类来读取文件
    srd.BaseStream.Seek(0, SeekOrigin.Begin);
    string strLine = srd.ReadLine();
    while (strLine != null)
    {
    strLine = srd.ReadLine();
    al.Add(strLine + "/n");
    }
    //关闭此StreamReader对象
    srd.Close();
    fs.Dispose();
    fs.Close();
    return al;
    }
    注:有种文章分页的思路是用截取文本字符数的方法来处理,这个方法当文章内容是html代码的话,分页后会引起排版问题。
    上面代码的方法思路是按行数来处理,这个方法个人认为相对更好些。在后台管理文章内容文件时,保证html代码的良好排版换行即可。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告