asp.net 文章内容分页显示的代码
发布时间:2020-03-14 11:47:19 所属栏目:Asp教程 来源:站长网
导读:有种文章分页的思路是用截取文本字符数的方法来处理,这个方法当文章内容是html代码的话,分页后会引起排版问题。
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 runat="server"> <div> <table cellpadding="0" cellspacing="0"> <tr> <td> <table> <tr> <td> <%=ArticleTitle %></td> </tr> </table> </td> </tr> <tr> <td> <p> <%=Article %> </p> </td> </tr> <tr> <td> <table> <tr> <td> <p> <asp:HyperLink runat="server" Visible="False">首页</asp:HyperLink> <asp:HyperLink runat="server" Visible="False">上一页</asp:HyperLink> <asp:HyperLink runat="server" Visible="False">下一页</asp:HyperLink> <asp:HyperLink 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代码的良好排版换行即可。 (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |