標籤:asp 分頁 bs
所謂分頁,就是把所有要顯示的內容分成n多頁來顯示。那為什麼要用分頁而不直接全部顯示呢?這就好比一本書,我們可以用一張紙寫完全部書的內容,但實際上並不是這麼做的。我們把網頁分成一頁一頁的,其實很大程度上是在為使用者考慮,極大的方便使用者。
分頁有兩種,一種是真分頁,一種是假分頁。
假分頁的“假”在於我已經把所有的資料取出來了,只是在顯示的時候給予一定的控制來到達分頁的效果。
真分頁的“真”在於所有的資料並非一次取出,而是真真正正的使用者查看哪一頁才去資料庫中取出所需的內容。
假分頁:
在ASP.NET中,我們經常用GridView,Repeater來綁定資料來源,顯示從資料庫中查到的資料。我們就先以GridView為例,來看看假分頁是如何?的。
首先,在頁面添加GridView。並設定允許分頁和分頁顯示的條數,即AllowPaging=True,PageSize=6.(即每頁顯示6條記錄,)
當運行介面時,可以顯示分頁狀態。但當單擊第2頁的按鈕時,會觸發PageIndexChanging事件,它是在單擊某一頁導覽按鈕時,但在 GridView 控制項處理分頁操作之前發生。
public partial class Test : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //當第一次進入頁面時,顯示繫結資料 if (!Page.IsPostBack) { GridView1.DataSource = new NewsManager().SelectAll(); //這裡用到了分層,可以直接理解為綁定資料庫中的表。 GridView1.DataBind(); } } //觸發分頁事件 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; GridView1.DataSource = new NewsManager().SelectAll(); GridView1.DataBind(); } }這樣,就可以實現假分頁了。
真分頁:
這裡要用到一個分頁的控制項AspNetPager。
首先,添加該控制項。
在工具箱處右擊——選項卡
單擊瀏覽後,找到AspNetPager.dll.
這樣,工具箱就出現該控制項了。
把它拖到設計介面,如:
分頁控制項添加完成後,類似地,設定每頁的顯示條數和最大記錄數。這時,當改變頁數時執行PageChanged事件。StartRecordIndex, EndRecordIndex分別是開始行數和結束行數。利用這兩個參數很容易可以實現從資料庫一頁一頁地取出資料,在這裡就不贅述了。
比較這兩種分頁方式:
真分頁與背景互動次數多,但面對龐大資料時仍能保持高效率,使用者體驗度較好。假分頁則相反。
附:
SQL中的分頁語句
select top 每頁顯示的記錄數(PageSize) * from topic where id not in (select top (當前的頁數-1)×每頁顯示的記錄數 id from topic order by id desc) order by id desc
AspNetPager分頁控制項
http://www.jb51.net/codes/40809.html