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

首頁 > 開發(fā) > 綜合 > 正文

一個(gè)相當(dāng)獨(dú)立的.通用分頁控件c#源碼

2024-07-21 02:26:30
字體:
供稿:網(wǎng)友
  • 本文來源于網(wǎng)頁設(shè)計(jì)愛好者web開發(fā)社區(qū)http://www.html.org.cn收集整理,歡迎訪問。
  •      通用asp.net數(shù)據(jù)分頁控件

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

      一、慨述

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

      一個(gè)優(yōu)秀的通用數(shù)據(jù)控件不僅提供常規(guī)的分頁功能,而且還要能夠:
      ⑴ 提供“首頁”、“上一頁”、“下一頁”、“末頁”分頁導(dǎo)航按鈕。

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

      ⑶ 不能依賴于特定的數(shù)據(jù)顯示控件。

      ⑷ 具有適應(yīng)各種現(xiàn)有、將有數(shù)據(jù)源的能力。

      ⑸ 應(yīng)當(dāng)能夠方便地配置顯示方式,輕松地集成到各種應(yīng)用之中。

      ⑹ 當(dāng)分頁就緒時(shí),提醒其他控件。

      ⑺ 即使是缺乏經(jīng)驗(yàn)的web設(shè)計(jì)者,也要能夠毫無困難地使用。

      ⑻ 提供有關(guān)分頁信息的屬性數(shù)據(jù)。

      目前市場(chǎng)上已經(jīng)有一些提供上述功能的商業(yè)性控件,不過都價(jià)格不菲。對(duì)于許多開發(fā)者來說,自己構(gòu)造一個(gè)通用的分頁控件是最理想的選擇。

      圖一顯示了本文通用分頁控件的運(yùn)行界面,其中用于顯示的控件是一個(gè)repeater控件。分頁控件由兩類部件構(gòu)成:四個(gè)導(dǎo)航按鈕,一組頁面編號(hào)鏈接。




    用戶可以方便地改換顯示控件、改變分頁控件本身的外觀。例如,在圖一中,和分頁控件協(xié)作的顯示控件可發(fā)換成一個(gè)datagrid控件,頁面編號(hào)鏈接和四個(gè)導(dǎo)航按鈕分兩行顯示。

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

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




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

    發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表
    主站蜘蛛池模板: 阳曲县| 绥芬河市| 克拉玛依市| 清河县| 宁化县| 秀山| 平山县| 昭觉县| 唐海县| 荥阳市| 广南县| 荃湾区| 咸宁市| 海原县| 屏东县| 桃园市| 宝鸡市| 克拉玛依市| 西充县| 莱州市| 灵台县| 社会| 阳信县| 保山市| 上饶市| 景宁| 绍兴县| 周口市| 巨鹿县| 凤台县| 醴陵市| 中宁县| 绿春县| 额尔古纳市| 莱芜市| 平乡县| 长宁县| 周至县| 黑山县| 九江县| 尚志市|