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
///
/// 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
///
/// 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
///
/// 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());
}