asp.net利用後台實現直接產生html分頁的方法_實用技巧

來源:互聯網
上載者:User

本文執行個體講述了asp.net利用後台實現直接產生html分頁的方法,是一個比較實用的功能。分享給大家供大家參考之用。具體方法如下:

1.建立預存程序:

ALTER procedure [dbo].[p_news_query]@Page intasbeginselect top 5 new_id,new_title,new_url,new_content_text,create_time,user_name from  (select *,ROW_NUMBER() over(order by new_id desc ) as RowNumber  from    (select new_id,new_title,new_url,new_content_text,        dbo.f_ConvertDate(a.create_time) create_time, b.user_name from xs_new a        left join xs_users b on b.user_no=a.create_user)TI ) A  where A.RowNumber>(@Page-1)*5end

目前實驗的是每頁5條資料,傳入當前頁碼就可以了

2.前台定義一個div ,用於顯示

 <div id="divPage" runat="server" class="divpage">  </div>

3.後台根據傳入參數來拼html

目前是模仿部落格園的模式,前後顯示5條,多餘的加...後到最後一條。具體代碼如下:

  StringBuilder sbr = new StringBuilder();  int ITotalCount = pageLogic.QueryNewsCount();  int IPage = 1;  if (Request["p"] != null)  { IPage = Convert.ToInt32(Request["p"]);  }  int IPageCount = 5;  int ITotalPage = ITotalCount / IPageCount;  if (ITotalCount % IPageCount > 0)  { ITotalPage += 1;  }  if (IPage != 1)  { sbr.Append("<a href=\"news.aspx?p=" + (IPage - 1).ToString() + "\">上一頁</a>");  }  if (ITotalPage <= 10)  { for (int i = 1; i <= ITotalPage; i++) {   if (i == IPage)   { sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\" class=\"pageSelect\">" + i.ToString() + "</a>");   }   else   { sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\">" + i.ToString() + "</a>");   } }  }  else  { if (IPage - 5 > 2 && IPage + 7 < ITotalPage)//前後都有的 {   sbr.Append("<a href=\"news.aspx?p=1\">1</a>...");   for (int i = IPage - 5; i <= IPage + 5; i++)   { if (i == IPage) {   sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\" class=\"pageSelect\">" + i.ToString() + "</a>"); } else {   sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\">" + i.ToString() + "</a>"); }   }   sbr.Append("...<a href=\"news.aspx?p=" + ITotalPage.ToString() + "\">" + ITotalPage.ToString() + "</a>"); } else if (IPage - 5 <= 2)//前面不夠,後面有多餘 {   for (int i = 1; i <= 10; i++)   { if (i == IPage) {   sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\" class=\"pageSelect\">" + i.ToString() + "</a>"); } else {   sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\">" + i.ToString() + "</a>"); }   }   sbr.Append("...<a href=\"news.aspx?p=" + ITotalPage.ToString() + "\">" + ITotalPage.ToString() + "</a>"); } else if (IPage + 7 >= ITotalPage)//前面多餘,後面不足 {   sbr.Append("<a href=\"news.aspx?p=1\">1</a>...");   for (int i = ITotalPage - 10; i <= ITotalPage; i++)   { if (i == IPage) {   sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\" class=\"pageSelect\">" + i.ToString() + "</a>"); } else {   sbr.Append("<a href=\"news.aspx?p=" + i.ToString() + "\">" + i.ToString() + "</a>"); }   } }  }  if (IPage != ITotalPage)  { sbr.Append("<a href=\"news.aspx?p=" + (IPage + 1).ToString() + "\">下一頁</a>");  }  divPage.InnerHtml = sbr.ToString();  rptNews.DataSource = pageLogic.QueryNews(IPage);  rptNews.DataBind();

4.測試效果如下圖所示:

希望本文所述對大家的asp.net程式設計有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.