對於幾乎所有的數據表現Web應用來說,組織好數據的顯示方式、避免給用戶帶來混亂的感覺就是最主要的目標之一。每個頁面顯示20條記錄當然是可以接受的,但每頁顯示10000條記錄就很容易給用戶帶來不便了。將數據分成多個頁面顯示,即對數據進行分頁,是解決此類問題的最常見的辦法。
一、慨述
ASP.NET本身只提供了一個支持數據分頁的控件,即DataGrid分頁控件,不過它比較適合Intranet環境使用,對於Internet環境來說,DataGrid分頁控件提供的功能似乎不足以構造出靈活的Web應用。其中一個原因是,DataGrid控件對Web設計者放置分頁控件的位置和分頁控件的外觀都有限制,例如,DataGrid控件不允許垂直放置分頁控件。另一個能夠發揮分頁技術優勢的控件是Repeater,Web開發者可以利用Repeater控件快速配置數據的顯示方式,但分頁功能卻需要開發者自己實現。數據源在不斷地變化,數據表現方式也千差萬別,如果針對這些不斷變動的條件分別定制分頁控件,顯然太浪費時間了,構造一個不限於特定表現控件的通用分頁控件將極大地有利於節省時間。
一個優秀的通用數據控件不僅提供常規的分頁功能,而且還要能夠:
⑴ 提供“首頁”、“上一頁”、“下一頁”、“末頁”分頁導航按鈕。
⑵ 根據數據顯示情況調整自身的狀態,即具有數據敏感性。如果分頁控件被設置成每頁顯示10個記錄,但實際上只有9個記錄,那麼分頁控件不應該顯示出來;在數據分成多頁顯示的情況下,第一個頁面的“首頁”、“上一頁”按鈕不應顯示出來,最後一個頁面的“下一頁”、“末頁”按鈕也不應該顯示出來。
⑶ 不能依賴於特定的數據顯示控件。
⑷ 具有適應各種現有、將有數據源的能力。
⑸ 應當能夠方便地配置顯示方式,輕松地集成到各種應用之中。
⑹ 當分頁就緒時,提醒其他控件。
⑺ 即使是缺乏經驗的Web設計者,也要能夠毫無困難地使用。
⑻ 提供有關分頁信息的屬性數據。
目前市場上已經有一些提供上述功能的商業性控件,不過都價格不菲。對於許多開發者來說,自己構造一個通用的分頁控件是最理想的選擇。
圖一顯示了本文通用分頁控件的運行界面,其中用於顯示的控件是一個Repeater控件。分頁控件由兩類部件構成:四個導航按鈕,一組頁面編號鏈接。
用戶可以方便地改換顯示控件、改變分頁控件本身的外觀。例如,和分頁控件協作的顯示控件換成了一個DataGrid控件,頁面編號鏈接和四個導航按鈕分兩行顯示。