内容分页简单实现代码及祥解(C#)

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

网上已经有用asp对文章内容分页显示的代码,我也没有用时间详细研究。今天发布了几篇超长的文章,为了方便网民的浏览,才定下心来写了下面的代码。因为我们的程序是C#.net编写的,关于C#如此的例子、资料网上一点也找不到;所以只好从程序结构开始分析,一点程序却用了半天的时候完成,汗颜!不足之处,请大家指点,有什么更好的方法请告知。

显示内容部分:

//来源:网人帝国(wren.cn/wrclub.net)

//作者:福星

//定义变量

int i,start,stop,t,stat,statt,pp,pagecount,pagesize;

//变量初始值

stat=0;

statt=0;

start=0;//开始查询的字符串位置,初始为0

stop=0;

pagesize=2000;//定义每页至少显示字符串数

pagecount=0;

//获得当前的页数

pa=Request.Params["page"];

if(pa=="" || pa==null)

pa="1";

pp=Convert.ToInt32(pa);

//获得内容

articletxt=rs["contenttxt"].ToString();

//判断页面的内容长度是否大于定义的每页至少显示字符串数

if(articletxt.Length>=pagesize)//如果大于字符串数,则我们可以分页显示

{

t=articletxt.Length/pagesize;//获得大致的总页数

//根据目前获得的页数循环

for(i=0;i<t;i++)

{

//如果查询开始位置到查询的范围超出整个内容的长度,那么就不用寻找断点(分页点);反之,查找

if(start+pagesize<articletxt.Length)

{

stat=articletxt.IndexOf("</P>",start+pagesize);//查找</P>分页点的位置

if(stat<=0)//如果找不到

stat=articletxt.IndexOf("</p>",start+pagesize);//查找</p>分页点的位置;这里您可以自己设置分页点的判断

}

if(stat<=0)//如果找不到分页点,说明不能分页,也就不需要做其他的劳动了;否则,就进行分页

articletext=articletxt;//将结果付给要导出的变量

else

{

stop=stat;//分页点的位置也就作为这一页的终点位置

if(start+pagesize>=articletxt.Length)//如果起始位置到查询的范围超出整个内容的长度,那么这一页的终点位置为内容的终点

stop=articletxt.Length;

if(pp==i+1)//如果是当前,那么输出当前页的内容

articletext=articletxt.Substring(start,stop-start);//取内容的起始位置到终点位置这段字符串输出

start=stat;//将终点位置作为下一页的起始位置

pagecount++;//获得实际页总数

}

}

}

分页部分(这里就简单多了)

string html;//定义分页代码变量

if(pagecount>1)//当页数大于1的时候我们显示页数

{

for(i=1;i<=pagecount;i++)

{

if(i==pp)//如果是当前页,加粗显示

html+="<b>["+i+"]</b> ";

else

html+="<a href=?id="+articleid+"&page="+i+">["+i+"]</a> ";

}

if(pp+1>pagecount)//显示下一页,方便浏览

html+="<a href=?id="+articleid+"&page="+(pagecount)+">[下一页]</a></p>";

else

html+="<a href=?id="+articleid+"&page="+(pp+1)+">[下一页]</a></p>";

}

大家可以加入上面的代码试一下!有什么问题请到网人论坛发贴,地址:http://bbs.wrclub.net

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航