国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

一個相當獨立的.通用分頁控件c#源碼一

2024-07-21 02:26:55
字體:
來源:轉載
供稿:網友

關鍵詞: downmoon,c#,分頁      

     通用asp.net數據分頁控件

  對于幾乎所有的數據表現web應用來說,組織好數據的顯示方式、避免給用戶帶來混亂的感覺就是最主 要的目標之一。每個頁面顯示20條記錄當然是可以接受的,但每頁顯示10000條記錄就很容易給用戶帶來不便了。將數據分成多個頁面顯示,即對數據進行分 頁,是解決此類問題的最常見的辦法。

  一、慨述

  asp.net本身只提供了一個支持數據分頁的控件,即 datagrid分頁控件,不過它比較適合intranet環境使用,對于internet環境來說,datagrid分頁控件提供的功能似乎不足以構造 出靈活的web應用。其中一個原因是,datagrid控件對web設計者放置分頁控件的位置和分頁控件的外觀都有限制,例如,datagrid控件不允 許垂直放置分頁控件。另一個能夠發揮分頁技術優勢的控件是repeater,者可以利用repeater控件快速配置數據的顯示方式,但分頁功 能卻需要開發者自己實現。數據源在不斷地變化,數據表現方式也千差萬別,如果針對這些不斷變動的條件分別定制分頁控件,顯然太浪費時間了,構造一個不限于 特定表現控件的通用分頁控件將極大地有利于節省時間。

  一個優秀的通用數據控件不僅提供常規的分頁功能,而且還要能夠:
  ⑴ 提供“首頁”、“上一頁”、“下一頁”、“末頁”分頁導航按鈕。

   ⑵ 根據數據顯示情況調整自身的狀態,即具有數據敏感性。如果分頁控件被設置成每頁顯示10個記錄,但實際上只有9個記錄,那么分頁控件不應該顯示出來;在數 據分成多頁顯示的情況下,第一個頁面的“首頁”、“上一頁”按鈕不應顯示出來,最后一個頁面的“下一頁”、“末頁”按鈕也不應該顯示出來。

  ⑶ 不能依賴于特定的數據顯示控件。

  ⑷ 具有適應各種現有、將有數據源的能力。

  ⑸ 應當能夠方便地配置顯示方式,輕松地集成到各種應用之中。

  ⑹ 當分頁就緒時,提醒其他控件。

  ⑺ 即使是缺乏經驗的web設計者,也要能夠毫無困難地使用。

  ⑻ 提供有關分頁信息的屬性數據。

  目前市場上已經有一些提供上述功能的商業性控件,不過都價格不菲。對于許多開發者來說,自己構造一個通用的分頁控件是最理想的選擇。

  圖一顯示了本文通用分頁控件的運行界面,其中用于顯示的控件是一個repeater控件。分頁控件由兩類部件構成:四個導航按鈕,一組頁面編號鏈接。




用戶可以方便地改換顯示控件、改變分頁控件本身的外觀。例如,在圖一中,和分頁控件協作的顯示控件可發換成一個datagrid控件,頁面編號鏈接和四個導航按鈕分兩行顯示。

asp.net 支持創建定制web控件的三種方式:用戶控件,復合控件,自定義控件。第三種控件即自定義控件的名稱很容易引起誤解。實際上,所有這三種控件都應該算是自 定義控件。復合控件和微軟所謂的自定義控件的不同之處在于,前者要用到createchildcontrols()方法, createchildcontrols()方法允許控件根據某些事件重新繪制自身。對于本文的通用分頁器,我們將使用復合控件。

  下面的uml序列圖概括了通用分頁控件的一般機制。




雖然我們的目標是讓通用分頁控件不依賴于表現數據的控件,但很顯然,總得有某種方法讓分頁控件訪問數據。每一個從control類繼承的控件都提供一個 databinding事件。我們把分頁器本身注冊成databinding事件的監聽器,分頁器就可以獲知數據的情況并修改數據。由于所有從 control類繼承的控件都有這個databinding事件,所以分頁器控件達到了不依賴于特定數據表現控件的目標——換句話說,分頁器控件可以綁定 到所有從control類派生的控件,即它能夠綁定到幾乎所有的web控件。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 观塘区| 江川县| 冷水江市| 龙口市| 依安县| 石泉县| 仙桃市| 平武县| 平利县| 吉木萨尔县| 上犹县| 丹阳市| 岗巴县| 嘉黎县| 鲁山县| 武邑县| 丹巴县| 望城县| 育儿| 佛冈县| 威宁| 绥棱县| 永顺县| 荆州市| 广宁县| 延川县| 冷水江市| 双峰县| 湟源县| 大埔区| 汝州市| 孝昌县| 灵武市| 耒阳市| 博客| 绥宁县| 广德县| 汝阳县| 乌拉特前旗| 通山县| 高安市|