Mvc分頁(yè)組件MvcSimplePager代碼重構(gòu)

Mvc分頁(yè)組件MvcSimplePager代碼重構(gòu)

Mvc分頁(yè)組件MvcSimplePager代碼重構(gòu)
1.1 Intro
1.2 MvcSimplePager 代碼優(yōu)化
1.3 MvcSimplePager 使用
1.4 End

Intro

MvcSimplePager 是為解決分頁(yè)的而做的一個(gè)通用、擴(kuò)展性良好的輕量級(jí)分頁(yè)擴(kuò)展,可以自定義分頁(yè)時(shí)調(diào)用的方法,自定義分頁(yè)所用的樣式,樣式與代碼分離,維護(hù)方便。

網(wǎng)上有許多分頁(yè)都是查詢(xún)所有數(shù)據(jù)再?gòu)闹胁樵?xún)某一頁(yè)的數(shù)據(jù),但是個(gè)人感覺(jué)數(shù)據(jù)很少時(shí)還可以,如果數(shù)據(jù)比較多這樣根本是不可行的,需要哪一頁(yè)數(shù)據(jù)再查詢(xún)哪一頁(yè)的數(shù)據(jù)才是正確的做法,才能一定程度上提高查詢(xún)的效率。

在網(wǎng)上看了幾個(gè)分頁(yè)組件,感覺(jué)分頁(yè)的 html 代碼和 CSharp 代碼都有不同程度上的耦合,都不是特別滿(mǎn)意, 于是自己封裝了一個(gè)分頁(yè)組件,基本可以實(shí)現(xiàn) html 代碼與 CSharp 代碼的完全分離。

MvcSimplePager 代碼優(yōu)化

MvcSimplePager 是這樣開(kāi)始的 http://www.cnblogs.com/weihanli/p/5913797.html

從開(kāi)始的把分頁(yè)的樣式和翻頁(yè)事件耦合在代碼中到把翻頁(yè)事件分離出來(lái)再到最后把分頁(yè)樣式也分離開(kāi)來(lái),MvcSimplePager 才算開(kāi)始了。

之后是BUG修改和思考代碼的優(yōu)化和重構(gòu)

在開(kāi)始在視圖上展示數(shù)據(jù) 使用 foreach遍歷數(shù)據(jù)時(shí)是需要 Model.Data 才能夠遍歷的,之后優(yōu)化成為只需要Model就可以了,像下面這樣:

@foreach(var item in Model)

V1.0的時(shí)候是沒(méi)有 GroupSize 的,為了使用起來(lái)更方便加入了一個(gè) GroupSize ,幫助更好的實(shí)現(xiàn)更優(yōu)美的分頁(yè),
剛加的時(shí)候不知道當(dāng)前為什么加了一個(gè)驗(yàn)證 GroupSize 不能大于8的限制【捂臉...】,上個(gè)版本已經(jīng)去掉

總之,希望這個(gè)分頁(yè)組件能夠解決大家的分頁(yè)問(wèn)題,也希望能夠它越來(lái)越好用,使用起來(lái)越來(lái)越簡(jiǎn)單,編碼越來(lái)越優(yōu)美。

下面介紹一下具體使用

MvcSimplePager 使用

  1. 引用 MvcSimplePager 包

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

    mvcSimplePager
  2. 自定義 分頁(yè)分部視圖

    創(chuàng)建自己項(xiàng)目的分頁(yè)分布視圖,放在 Views目錄下的 Shared 目錄下

    pager_location

    可參考 demo 項(xiàng)目中的 兩個(gè)示例修改為自己想用的Pager:

  3. 后臺(tái)代碼中設(shè)置頁(yè)面數(shù)據(jù)

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

    • 從數(shù)據(jù)庫(kù)或自己封裝的服務(wù)層獲取所需數(shù)據(jù)
    • 根據(jù)查詢(xún)的數(shù)據(jù)生成 IPagerListModel<T> 數(shù)據(jù)
    • 將 IPagerListModel<T> 數(shù)據(jù)傳遞到 view
    pagerInCode.png
  4. 設(shè)置所需設(shè)置分頁(yè)的頁(yè)面

    • 在頁(yè)面上展示數(shù)據(jù)

      MvcSimplePager 已經(jīng)對(duì)Model進(jìn)行了處理,在頁(yè)面上展示數(shù)據(jù),可以直接 foreach Model

      show-data
    • 分頁(yè)

      MvcSimplePager 定義了為 HtmlHelper定義了一個(gè) Pager的擴(kuò)展方法,用法如下:

      pagerInView2.png
    * 第一個(gè)參數(shù)是 Model 里封裝的一個(gè)分頁(yè)信息
    * 第二個(gè)參數(shù)是分頁(yè)事件,默認(rèn)是超鏈接,這里我是調(diào)用的一個(gè)進(jìn)行分頁(yè)的 js 方法
    * 第三個(gè)參數(shù)是 分頁(yè)分部視圖的名稱(chēng)
    * 第四個(gè)參數(shù)是 分頁(yè)信息展示選項(xiàng),現(xiàn)在有兩種,總是展示和需要翻頁(yè)時(shí)才展示

End

現(xiàn)在已經(jīng)將這個(gè)項(xiàng)目 MvcSimplePager 打包到 Nuget http://www.nuget.org/packages/MvcSimplePager/,你可以在VS中 nuget 包管理器中搜索 MvcSimplePager 進(jìn)行使用 。

自定義 MvcSimplePager 項(xiàng)目和示例代碼:https://github.com/WeihanLi/MvcSimplePager ,你可以根據(jù)需要再進(jìn)行自己的定制。

如果 MvcSimplePager 還有什么不能滿(mǎn)足你的需要,歡迎與我聯(lián)系,期待您的建議和反饋 weihanli@outlook.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容