程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 內容分頁簡單實現代碼及祥解(C#)

內容分頁簡單實現代碼及祥解(C#)

編輯:.NET實例教程

網上已經有用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>&quot;;
else
Html+="<a href=?id="+articleid+"&page="+(pp+1)+">[下一頁]</a></p>";
}

大家可以加入上面的代碼試一下!有什麼問題請到網人論壇發貼,地址:http://bbs.wrclub.Net

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved