asp.NetmvcカスタムPagerパッケージと最適化

6449 ワード

asp.Netmvcカスタムpagerパッケージと最適化


Intro


以前は一般的なページングコンポーネントを作っていましたが、ページングイベントとページングスタイルがバックグラウンドコードに融合していることから、ページングイベントがカスタマイズでき、ページングとスタイルがコードから分離されるまで、カスタムページングpagerはますます拡張しやすくなりました.

HtmlHelper Pager拡張


Pager V1.0 :


        /// 
        /// Pager V1.0
        /// 
        /// HtmlHelper
        ///     
        /// 
        public static MvcHtmlString Pager(this HtmlHelper helper, PagerModel pager)
        {
            StringBuilder sbHtmlText = new StringBuilder();
            sbHtmlText.Append("
"); sbHtmlText.AppendFormat("
{0}{1}{2}
", pager.PageSize, pager.PageCount, pager.TotalCount); return MvcHtmlString.Create(sbHtmlText.ToString()); }

Pager V2.0


        /// 
        /// Pager V2.0
        /// 
        /// HtmlHelper
        ///     
        ///     
        /// 
        public static MvcHtmlString Pager(this HtmlHelper helper, PagerModel pager, Func onPageChange)
        {
            StringBuilder sbHtmlText = new StringBuilder();
            sbHtmlText.Append("
"); sbHtmlText.AppendFormat("
{0}{1}{2}
", pager.PageSize, pager.PageCount, pager.TotalCount); return MvcHtmlString.Create(sbHtmlText.ToString()); }

Pager V3.0


        /// 
        /// Pager V3.0
        /// 
        /// HtmlHelper
        ///     
        ///        
        ///         
        ///       
        /// 
        public static MvcHtmlString Pager(this HtmlHelper helper, PagerModel pager, Func onPageChange, string pagerViewName, PagingDisplayMode displayMode = PagingDisplayMode.Always)
        {
            pager.OnPageChange = onPageChange;
            pager.PagingDisplayMode = displayMode;
            return MvcHtmlString.Create(helper.Partial(pagerViewName, pager).ToHtmlString());
        }

Summary


Pager V1.0ページングスタイルとページをめくるイベント変更する場合はCSharpコードを変更します.
Pager V2.0ページをめくるイベントをカスタマイズできますが、ページスタイルを変更するかCSharpコードを変更します.
Pager V3.0ページをめくるイベントやアドレス、ページスタイルをカスタマイズしたセクションビューで変更できます.

End


このプロジェクトMvcSimplePagerをNugetにパッケージ化しましたhttp://www.nuget.org/packages/MvcSimplePager/を選択すると、VSのnugetパッケージマネージャでMvcSimplePagerを検索して使用できます.
カスタムMvcSimplePagerプロジェクトとサンプルコード:https://github.com/WeihanLi/MvcSimplePager