Mvc分頁組件MvcSimplePager代碼重構

來源:互聯網
上載者:User

標籤:art   images   提高   pre   好的   分布   產生   輕量   alt   

1 Mvc分頁組件MvcSimplePager代碼重構

1.1 Intro

1.2 MvcSimplePager 代碼最佳化

1.3 MvcSimplePager 使用

1.4 End

Mvc分頁組件MvcSimplePager代碼重構Intro

MvcSimplePager 是為解決分頁的而做的一個通用、擴充性良好的輕量級分頁擴充,可以自訂分頁時調用的方法,自訂分頁所用的樣式,樣式與代碼分離,維護方便。

網上有許多分頁都是查詢所有資料再從中查詢某一頁的資料,但是個人感覺資料很少時還可以,如果資料比較多這樣根本是不可行的,需要哪一頁資料再查詢哪一頁的資料才是正確的做法,才能一定程度上提高查詢的效率。

在網上看了幾個分頁組件,感覺分頁的 html 代碼和 CSharp 代碼都有不同程度上的耦合,都不是特別滿意, 於是自己封裝了一個分頁組件,基本可以實現 html 代碼與 CSharp 代碼的完全分離。

MvcSimplePager 代碼最佳化

MvcSimplePager 是這樣開始的 http://www.cnblogs.com/ben121011/p/5913797.html

從開始的把分頁的樣式和翻頁事件耦合在代碼中到把翻頁事件分離出來再到最後把分頁樣式也分離開來,MvcSimplePager 才算開始了。

之後是BUG修改和思考代碼的最佳化和重構

在開始在視圖上展示資料 使用 foreach遍曆資料時是需要 Model.Data 才能夠遍曆的,之後最佳化成為只需要Model就可以了,像下面這樣:

foreach(var item in Model)

 

 

V1.0的時候是沒有 GroupSize 的,為了使用起來更方便加入了一個 GroupSize ,協助更好的實現更優美的分頁, 剛加的時候不知道當前為什麼加了一個驗證 GroupSize 不能大於8的限制【捂臉...】,上個版本已經去掉

總之,希望這個分頁組件能夠解決大家的分頁問題,也希望能夠它越來越好用,使用起來越來越簡單,編碼越來越優美。

下面介紹一下具體使用

MvcSimplePager 使用
  1. 引用 MvcSimplePager 包

    在 nuget 包管理器中搜尋 “MvcSimplePager”

     

  2. 自訂 分頁分部視圖

    建立自己項目的分頁分布視圖,放在 Views目錄下的 Shared 目錄下

     

    可參考 demo 項目中的 兩個樣本修改為自己想用的Pager:

    • PagerPartial
    • PagerPartial1 【推薦】
  3. 後台代碼中設定頁面資料

    控制器代碼只需要三行代碼:

    • 從資料庫或自己封裝的服務層擷取所需資料
    • 根據查詢的資料產生 IPagerListModel 資料
    • 將 IPagerListModel 資料傳遞到 view

       

  4. 設定所需設定分頁的頁面

    • 在頁面上展示資料

      MvcSimplePager 已經對Model進行了處理,在頁面上展示資料,可以直接 foreach Model

       

    • 分頁

      MvcSimplePager 定義了為 HtmlHelper定義了一個 Pager的擴充方法,用法如下:

       

      • 第一個參數是 Model 裡封裝的一個分頁資訊
      • 第二個參數是分頁事件,預設是超連結,這裡我是調用的一個進行分頁的 js 方法
      • 第三個參數是 分頁分部視圖的名稱
      • 第四個參數是 分頁資訊展示選項,現在有兩種,總是展示和需要翻頁時才展示
End

現在已經將這個項目 MvcSimplePager 打包到 Nuget http://www.nuget.org/packages/MvcSimplePager/,你可以在VS中 nuget 包管理器中搜尋 MvcSimplePager 進行使用 。

自訂 MvcSimplePager 項目和範例程式碼:https://github.com/WeihanLi/MvcSimplePager ,你可以根據需要再進行自己的定製。

如果 MvcSimplePager 還有什麼不能滿足你的需要,歡迎與我聯絡,期待您的建議和反饋 [email protected]

Mvc分頁組件MvcSimplePager代碼重構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.