日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

自定义分页控件

發布時間:2024/4/14 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义分页控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
頁面中數據的分頁功能常常是令程序員比較頭疼的一件事情,并非是技術原因,而是分頁的繁瑣(包括:風格統一、參數的維護……)。ASP.NET控件中的 GridView和DataGrid等都直接支持分頁,但這兩中控件所擅長的是處理表格數據,而我們往往需要的顯示風格要比表格豐富的多;以我往常經驗, 我比較喜歡Repeater,可一隨心所欲的駕馭它來完成任何復雜的顯示,但可惜的是它沒有提供自動的分頁功能。

我們何不把這分頁功能給封裝起來呢?

讓我們來分析一下分頁的封裝到底要實現那些功能:
  • 數據顯示控件不應該關心“頁”的問題,因為它的功能是顯示數據,你只需要把它要顯示的數據給它就行了;
  • 你必須承認分頁的獨立性,它與任何顯示控件物理上是隔離的,所以我們在設計該控件時不應該考慮任何數據顯示控件;
  • 分頁控件需要維護一個“當前頁”、“頁大小”的上下文;
  • 要確定分頁控件的數據無關性(這里的“數據”指的是在數據顯示控件中顯示的數據),數據顯示控件的數據源應該由系統的“業務層”提供, 而業務層的數據提供服務所查詢的具體數據有分頁控件的“當前頁”、“頁大小”確定(如:GetData(int pageIndex,int pageSize););
  • 分頁控件必須能夠維護當前頁面的參數;
  • 分頁控件能夠維護統一的風格(由用戶指定顯示樣式,否則就顯示默認樣式)。
  • 根據以上的分析,我們就可以來設計“分頁控件”(SimplePaper)了,看看咱們的實現代碼吧:

    首先實現的是SimplePaper維護的數據及屬性,每個屬性的描述這里就不再詳述了
    ??1????private?string?_class;
    ??2????private?int?_pageSize?=?10;
    ??3????private?int?_numberCount?=?10;
    ??4????private?int?_virtualCount?=?0;
    ??5
    ??6????private?string?_prevText?=?"上一頁";
    ??7????private?string?_nextText?=?"下一頁";
    ??8????private?string?_firstText?=?"第一頁";
    ??9????private?string?_lastText?=?"最末頁";
    ?10
    ?11????///?<summary>
    ?12????///?獲取或設置控件關聯的樣式類
    ?13????///?</summary>

    ?14????[Category("Behavior")]
    ?15????[Description("Css的樣式類名稱")]
    ?16????public?string?Class?{
    ?17??????get?{
    ?18????????return?_class;
    ?19??????}

    ?20??????set?{
    ?21????????_class?=?value;
    ?22??????}

    ?23????}

    ?24
    ?25????///?<summary>
    ?26????///?獲取或設置“上一頁”在分頁導航條中顯示的文本,默認值“上一頁”
    ?27????///?</summary>

    ?28????[Category("Behavior")]
    ?29????[Description("上一頁文本")]
    ?30????public?string?PrevText?{
    ?31??????get?{
    ?32????????return?_prevText;
    ?33??????}

    ?34??????set?{
    ?35????????_prevText?=?value;
    ?36??????}

    ?37????}

    ?38
    ?39????///?<summary>
    ?40????///?獲取或設置“下一頁”在分頁導航條中顯示的文本,默認值“下一頁”
    ?41????///?</summary>

    ?42????[Category("Behavior")]
    ?43????[Description("下一頁文本")]
    ?44????public?string?NextText?{
    ?45??????get?{
    ?46????????return?_nextText;
    ?47??????}

    ?48??????set?{
    ?49????????_nextText?=?value;
    ?50??????}

    ?51????}

    ?52
    ?53????///?<summary>
    ?54????///?獲取或設置“第一頁”在分頁導航條中顯示的文本,默認值“第一頁”
    ?55????///?</summary>

    ?56????[Category("Behavior")]
    ?57????[Description("第一頁文本")]
    ?58????public?string?FirstText?{
    ?59??????get?{
    ?60????????return?_firstText;
    ?61??????}

    ?62??????set?{
    ?63????????_firstText?=?value;
    ?64??????}

    ?65????}

    ?66
    ?67????///?<summary>
    ?68????///?獲取或設置“最末頁”在分頁導航條中顯示的文本,默認值“最末頁”
    ?69????///?</summary>

    ?70????[Category("Behavior")]
    ?71????[Description("最末頁文本")]
    ?72????public?string?LastText?{
    ?73??????get?{
    ?74????????return?_lastText;
    ?75??????}

    ?76??????set?{
    ?77????????_lastText?=?value;
    ?78??????}

    ?79????}

    ?80????
    ?81????///?<summary>
    ?82????///?獲取或設置分頁的大小,默認值10
    ?83????///?</summary>

    ?84????[Category("Behavior")]
    ?85????[Description("頁大小")]
    ?86????public?int?PageSize?{
    ?87??????get?{
    ?88????????return?_pageSize;
    ?89??????}

    ?90??????set?{
    ?91????????_pageSize?=?value;
    ?92??????}

    ?93????}

    ?94
    ?95????///?<summary>
    ?96????///?獲取或設置分頁導航條中顯示的頁碼數量,默認10
    ?97????///?</summary>

    ?98????[Category("Behavior")]
    ?99????[Description("分頁中要顯示的頁碼數量")]
    100????public?int?NumberCount?{
    101??????get?{
    102????????return?_numberCount;
    103??????}

    104??????set?{
    105????????_numberCount?=?value;

    轉載于:https://www.cnblogs.com/cwy173/archive/2009/11/13/1602767.html

    總結

    以上是生活随笔為你收集整理的自定义分页控件的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。