用Asp.net完成新聞分頁
發(fā)表時間:2023-08-14 來源:明輝站整理相關軟件相關文章人氣:
[摘要]思想:方法是在后臺添加新聞時,估計在應該分頁的地方插入一個標記(我插入的是[PAGE]),在前臺顯示時,我傳入了一個參數(shù)Page,表示要顯示第幾頁,在顯示頁面,我根據(jù)標記[PAGE]分別把新聞內容放...
思想:方法是在后臺添加新聞時,估計在應該分頁的地方插入一個標記(我插入的是[PAGE]),在前臺顯示時,我傳入了一個參數(shù)Page,表示要顯示第幾頁,在顯示頁面,我根據(jù)標記[PAGE]分別把新聞內容放入數(shù)組中,如果傳入的參數(shù)Page的值是1,我就取Arr[0]的值,如果是第二個......
還有,我把分頁的html代碼是根據(jù)統(tǒng)計的[PAGE]來決定是否顯示的
BaseInfo是我定義的基本信息類:
public class BaseInfo
?{
??public string ID,Summary,Content,Picture;
??public DateTime Publictime;
??public StringBuilder PageFoot = new StringBuilder();
??public BaseInfo()
??{?
???
??}
??//添加
??public int Add()
??{
???...??
??}
??//更新
??public int Update()
??{
???...
??}
??
??//初始化
??public void Init()
??{
???...
??}
?}
在這個頁面要傳入兩個參數(shù)Page和ID,第一次鏈接到這個頁面?zhèn)魅氲腜age值應該是1,而且一定是1,ID是
新聞的ID,如新聞ID=1的連接應該是BaseInfoDetail.aspx?Page=1&ID=1
NextAt是后一個[PAGE]的位置,BackAt是前一個[PAGE]標志的位置,PageFoot是一個html表格我加了
runat=server
代碼如下:
BaseInfoDetail.aspx的部分代碼如下:
BaseInfo info = new BaseInfo();??
????info.ID = Request.QueryString["ID"];?
????info.Init();
????
//******************************************************************************************
**********
????//分頁
????// i:計算標志“[PAGE]”的個數(shù)的
????//
????//???????????????? --? 夢凡? 2004年8月14號19:32
????int NextAt = -4,i=0,BackAt = 0;
????string[] TempContent = new string[20] ;
????do
????{
?????NextAt += 4;
?????NextAt = info.Content.IndexOf("[PAGE]",NextAt);??
????????????
?
?????if(NextAt != -1)
?????{
??????i++;
??????TempContent[i] = info.Content.Substring
(BackAt,Math.Abs(NextAt-BackAt));
??????BackAt = NextAt + 6;
?????}
????}while(NextAt != -1);
??????
????int CurrentPage = Convert.ToInt32(Request.QueryString
["Page"]);
????if(i>0)
????{
?????info.Content = TempContent[CurrentPage];
?????this.PageFoot.Visible = true;
????}
????else
?????this.PageFoot.Visible = false;
?????
????info.PageFoot.Append("共" +i.ToString()+"頁 ");
????for(int j=1;j<=i;j++)
????{
?????info.PageFoot.Append("[
href='BaseInfoDetail.aspx?Page=" +j.ToString()+ "&ID=" +info.ID+ "'>" +j.ToString()+ "]
");
????}
????if(CurrentPage != i)
????{
?????CurrentPage += 1;
?????info.PageFoot.Append("下一頁 ");
????}
????
????
//******************************************************************************************
**********