在web
設計中乙個無法避免的問題就是分頁顯示。當資料量特別大的時候,我們不可能將所有的資料都在乙個頁面進行顯示,如果這樣將嚴重影響到它的美觀性。所以在這個時候,分頁顯示則成為了我們的大功臣。當然分頁也分兩種,一種是真分頁,一種是假分頁,即:
假分頁:從資料庫中選擇所有記錄後在分頁。
真分頁:從資料庫中選擇當前頁的記錄
首先先來說一下自帶的分頁功能(假分頁):
在.net
中的grid
view
控制項就自帶分頁顯示功能,當然操作很簡單,總共分成兩步:
1、在介面新增乙個
gridview
控制項,設定其屬性
allowpaging
的值為true
,pagesize
的值為n(n
為每一頁顯示記錄的條數),這樣就設定成功了。
2、將資料繫結到
grid
view
控制項上面就可以了。具體如下:
protected void page_load(object sender, eventargs e)
}/// ///繫結資料方法
///
private void bindnews()
/// /// 換頁時的資料繫結功能
///
///
///
protected voidgridview1_pageindexchanging(object sender, gridviewpageeventargs e)
通過上面的步驟就可以輕鬆得到分頁的資料了。雖然可以實現想要的結果,但是還存在著一些問題,比如上面的繫結資料方法中繫結的是全部的新聞,每次執行的時候都會查詢資料庫中所有的記錄,當記錄達到一定量大的時候比如
50萬條,
100萬條等等,這個時候繫結的時候會是多麼長的時間。所以將上面的情況定義成為假分頁。與其相比,真分頁則很好的解決了這個問題,下面再來見證一下真分頁的神奇吧:
在分頁之前要進行資料查詢,所以在這我建立了乙個儲存過程,用於查詢分頁資料,具體如下:
alter procedure[dbo].[asppagechoose]
@startpageint,
@endpageint
as begin
----建立臨時表,用於儲存
withtemptbl as (
selectrow_number() over (order by id desc)as rownum ,* from news
) select* from temptbl where rownum between@startpage and @endpage
end
其次是u
層的建立,在介面上面放置兩個控制項,分別是
aspnetpage
和gridview
,將這兩個控制項每頁顯示的個數設定成對應的數值,最後就是對資料的繫結,進行顯示,如下
protected voidpage_load(object sender, eventargs e)
}//進行換頁顯示資料
protected voidanp_pagechanged(object sender, eventargs e)
總結:常說對比出真知,通過上面的對比,可以很清楚的展示,真分頁為我們開啟了方便之門,除此之外還給我們程式設計帶來了巨大的好處。上面的純屬自己摸索而來,如有什麼不足,還請各位指點指點。
Vue真假分頁
一共100條資料,我要分10頁顯示,每頁顯示10條 一共100條資料,我要分5頁顯示,每頁顯示20條 一共99條資料,我要分5頁顯示,每頁顯示20條 理論上這三個引數,獲取任意兩個,便可知道第三個,但由於鎮假分頁的概念,所以在真分頁中只能選擇 pagenum,和pagesize,不然則是假分頁啦,既...
福分系統 EasyUI真假分頁
最近在進行乙個福分管理系統的專案,遇到很多問題,其中關於easyui datagrid控制項的分頁問題,著實被刺激了一把。當資料量足夠大時,如果不分頁,第一,可能影響資料載入速度 第二,資料顯示內容過多,最終的結果都是影響使用者體驗。按照每頁記錄的需求條數對資料庫進行訪問,每次換頁都會和資料庫進行一...
簡單web分頁實現
在這裡主要講解一下mysql sqlserver2000 及sqlserver2005 和orcale三種資料庫實現分頁查詢的方法。可能會有人說這些網上都有,但我的主要目的是把這些知識通過我實際的應用總結歸納一下,以方便大家查詢使用。下面就分別給大家介紹 講解一下三種資料庫實現分頁查詢的方法。一 m...