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;" border="0" 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代码的良好排版换行即可。
===================
测试用例文件(20091795819.html):
<p>计算机和软件技术日新月异,作为一名合格的IT工程师,必须善于学习,及时了解和掌握<a href="http://www.csai.cn/incsearch/search.asp?key=%D0%C2%BC%BC%CA%F5" target="_blank">新技术</a>、新方法。然而新技术、新方法总是层出不穷,常常让IT人员无所适从,疲惫应付。下面我想谈谈我对新技术、新方法的一个归类性的介绍,以使大家心中有一个全局的把握,并理清自己感兴趣的方向,从而作进一步研究,专注而专业地从事IT工作。</p>
<p> <strong>一、</strong><a href="http://book.csai.cn/viewbook.asp?id=85"><strong>信息安全新技术</strong></a></p>
<p> 主要包括密码技术、入侵检测系统、信息隐藏技术、身份<a href="http://www.csai.cn/incsearch/search.asp?key=%C8%CF%D6%A4" target="_blank">认证</a>技术、数据库<a href="http://www.csai.cn/incsearch/search.asp?key=%B0%B2%C8%AB" target="_blank">安全</a>技术、 网络容灾和灾难恢复、<a href="http://www.csai.cn/incsearch/search.asp?key=%CD%F8%C2%E7%B0%B2%C8%AB" target="_blank">网络安全</a><clk></clk><nobr οncοntextmenu="return false" οnmοusemοve="kwM(1)" id="clickeyekey1" οnmοuseοver="kwE(event,1, this)" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" οnclick="kwC(event,1,"")" οnmοuseοut="kwL(event,this)">设计</nobr>等。随着网络时代的到来,网络已经改变了人们的生活和工作方式。<a href="http://www.csai.cn/incsearch/search.asp?key=%BB%A5%C1%AA%CD%F8" target="_blank">互联网</a>技术、<a href="http://www.csai.cn/incsearch/search.asp?key=%CE%DE%CF%DF" target="_blank">无线</a><a href="http://www.csai.cn/incsearch/search.asp?key=%CD%F8%C2%E7%BC%BC%CA%F5" target="_blank">网络技术</a>以及<a href="http://www.csai.cn/incsearch/search.asp?key=%D0%C5%CF%A2%BB%AF" target="_blank">信息化</a>的不断深入和发展,已经出现了在线购物、在线炒股、<a href="http://www.csai.cn/incsearch/search.asp?key=%CA%D6%BB%FA" target="_blank">手机</a><clk></clk><nobr οncοntextmenu="return false" οnmοusemοve="kwM(0)" id="clickeyekey0" οnmοuseοver="kwE(event,0, this)" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" οnclick="kwC(event,0,"")" οnmοuseοut="kwL(event,this)">银行</nobr>及网上办公等各种各样的信息应用。这些技术和方法是任何一位从事信息安全相关工作的人士必须具备的知识。</p>
<p> <strong>二、</strong><a href="http://book.csai.cn/viewbook.asp?id=84"><strong>信息化新技术</strong></a></p>
<p> 信息化新技术主要涉及<a href="http://www.csai.cn/incsearch/search.asp?key=%B5%E7%D7%D3%D5%FE%CE%F1" target="_blank">电子政务</a>、<a href="http://www.csai.cn/incsearch/search.asp?key=%B5%E7%D7%D3%C9%CC%CE%F1" target="_blank">电子商务</a>、城市信息化、企业信息化、农业信息化、服务业信息化等。例如根据国家的信息化指导方针,城市信息化必须与工业化结合进行,城市信息化必须以工业化为基础,在推进工业化的基础上推进信息化,因此,工业化就成为信息化的应用基础。</p>
<p> <strong>三、</strong><a href="http://book.csai.cn/viewbook.asp?id=83"><strong>软件新技术</strong></a></p>
<p><clk></clk> 软件新技术主要<nobr οncοntextmenu="return false" οnmοusemοve="kwM(2)" id="clickeyekey2" οnmοuseοver="kwE(event,2, this)" style="color: #6600ff; border-bottom: #6600ff 1px dotted; background-color: transparent; text-decoration: underline" οnclick="kwC(event,2,"")" οnmοuseοut="kwL(event,this)">关注</nobr><a href="http://www.csai.cn/incsearch/search.asp?key=%C7%B6%C8%EB%CA%BD" target="_blank">嵌入式</a>计算与嵌入式软件、基于构件的软件开发方法、中间件技术、数据中心的建设、可信网络计算<a href="http://www.csai.cn/incsearch/search.asp?key=%C6%BD%CC%A8" target="_blank">平台</a>、软件架构设计、<a href="http://www.csai.cn/incsearch/search.asp?key=SOA" target="_blank">SOA</a>与RIA技术、软件产品线技术等。随着对象技术与<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%D6%B2%BC%CA%BD" target="_blank">分布式</a>计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。</p>
<p> <strong>四、</strong><a href="http://book.csai.cn/viewbook.asp?id=82"><strong>网络新技术</strong></a></p>
<p> 网络新技术包括宽带无线与移动通信、光通信与智能光网络、家庭网络与智能终端、宽带多媒体网络、IPv6与下一代网络、分布式系统等。虽然有线的<a href="http://www.csai.cn/incsearch/search.asp?key=%D7%CA%D4%B4" target="_blank">资源</a>是无限,而无线资源是有限,但以WLAN为代表的无线宽带网技术将无线和有线无缝地结合起来,从而创造出无限资源和无限应用。</p>
<p> <strong>五、</strong><a href="http://book.csai.cn/viewbook.asp?id=81"><strong>计算机新技术</strong></a></p>
<p> 计算机新技术主要关注网格计算、人机接口、高性能计算和高性能<a href="http://www.csai.cn/incsearch/search.asp?key=%B7%FE%CE%F1%C6%F7" target="_blank">服务器</a>、智能计算、磁<a href="http://www.csai.cn/incsearch/search.asp?key=%B4%E6%B4%A2" target="_blank">存储</a>技术、光存储技术、中文信息处理与智能人机交互、数字媒体与内容管理、音<a href="http://www.csai.cn/incsearch/search.asp?key=%CA%D3%C6%B5" target="_blank">视频</a>编/解码技术等。其中网格技术有一个角度是发展IPv6,将地址空间由32位扩展到128位,这样,原来有限的IP地址将变得无限丰富;另一个角度是发展网格技术,更好地管理网上的资源,将之虚拟成为一个空前强大的一体化信息系统,在动态变化的网络环境中,共享资源和协同解决问题,从而让用户从中享受可灵活控制的、智能的、协作式的信息服务,并获得前所未有的使用方便性和超强能力。</p>
<p> 为高度深缩以上新技术、新方法,<a href="http://www.csai.cn/incsearch/search.asp?key=%CF%A3%C8%FC%CD%F8" target="_blank">希赛网</a>适时组织权威专家<a href="http://www.csai.cn/incsearch/search.asp?key=%CD%C5%B6%D3" target="_blank">团队</a>组编了《IT新技术宝典系列》丛书,倾情奉献给每一位IT从业人事,详情可见<a href="http://book.csai.cn/">http://book.csai.cn</a>(可以在线阅读、按需印刷)。</p>