內容分頁簡單實現代碼及祥解(C#)
2024-07-21 02:25:38
供稿:網友
網上已經有用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