|
先說說從數(shù)據(jù)源入手的吧。一想到數(shù)據(jù)源做分頁,自然是T-SQL了。什么存儲過程,視圖、特殊函數(shù)(當(dāng)然,這里指的只是我熟悉的MS)。能用到的SQL知識都往上砸。具體的實(shí)現(xiàn)就不說了,忒Easy。代碼部分基本沒有什么,只要每次更改T-SQL語句就行了。不好的就是太受數(shù)據(jù)庫的限制,程序中一丁點(diǎn)的變化,所有有關(guān)SQL的地方都要變,有些甚至要改變數(shù)據(jù)庫的結(jié)構(gòu)。沒有扎實(shí)的數(shù)據(jù)庫知識是萬萬不行了。
服務(wù)器端做分頁可能是行家們最常用到的方法了。因?yàn)橛邪b好的數(shù)據(jù)綁定控件啊!拿來就可以用。但是,那么說微軟是大佬級人物呢,做個(gè)東西都深謀遠(yuǎn)慮。把菜鳥跟恐龍都考慮在內(nèi)。你如果是菜鳥就用GridView,內(nèi)置的分頁讓你幾乎不用寫代碼就能實(shí)現(xiàn)。但如果你是恐龍那就用ListView或DataList等控件,絕對能讓你的技術(shù)發(fā)揮的淋漓盡致。微軟為了給這些人個(gè)臺階下,就又開發(fā)出了DataPager控件。他好像只認(rèn)IPageableItemContainer接口。緊接著就又有了ASPNETPager控件,這就給所有數(shù)據(jù)綁定控件又一個(gè)分頁的機(jī)會。不過ASPNETPager與DataPager不同,ASPNETPager只有分頁的UI部分,并不能單獨(dú)完在數(shù)據(jù)的分頁功能。其實(shí)大家一定會問,為什么我們不能做自己的分頁控件呢?這好像不是微軟的原則啊?哈哈,別誤會微軟。其實(shí)早就有這個(gè)方法了,只是少有人問津。這就是PagedDataSource。他是沒有UI的,微軟所有分頁的控件都是擴(kuò)展于他的,包括最早的GridView。有了他,我們就可以隨心所欲的做自己的分頁控件了。如果把ASPNETPager和PagedDataSource結(jié)合起來用,那就是如虎添翼。
再說說客戶端的分頁吧。在以前,客戶端做分頁無疑就是胖客戶端。把所有數(shù)據(jù)都存到頁面,用js控制顯示順序。少量數(shù)據(jù)還可以忍受,數(shù)據(jù)一多,那就是謀殺。不過,自從AJAX的出現(xiàn),改變了這一現(xiàn)象。雖然也少不了的與服務(wù)器交互,但總比干等著強(qiáng)吧?這方面.NET也表現(xiàn)不錯(cuò)。有了UpdatePanel,一切盡在不言中啊。
以上三個(gè)方向都可以很好的完成分頁功能,但誰好誰壞也不是我一個(gè)人就能決定的,還要看個(gè)人的喜好。不過,有一人原則不能忽略,那就是“大道至簡,適可而止”。相信,每個(gè)人都有自己的一番體會的。
AspNet技術(shù):asp.net 分頁潛談,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。