手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net 文章内容分页显示的代码
asp.net 文章内容分页显示的代码
摘要:aspx:文章分页首页上一页下一页末页1){for(inti=1;i页数:///==========================aspx...

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 border="0" cellpadding="0" cellspacing="0">

<tr>

<td align="left">

<table>

<tr>

<td>

<%=ArticleTitle %></td>

</tr>

</table>

</td>

</tr>

<tr>

<td align="left">

<p>

<%=Article %>

</p>

</td>

</tr>

<tr>

<td>

<table>

<tr>

<td 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代码的良好排版换行即可。

【asp.net 文章内容分页显示的代码】相关文章:

asp.net用三层实现多条件检索示例

ASP.Net 分页控件源码

asp.net自定义控件代码学习笔记

asp.net中包含文件的代码及使用方法

asp.net(C#) 生成随机验证码的代码

asp分页生成html的程序脚本代码

用asp.net c# HttpWebRequest获取网页源代码

.NET 扩展实现代码

ASP.Net 图片存入数据库的实现代码

asp图片防盗链的代码

精品推荐
分类导航