A common paging component was previously done, but there were some shortages, from page-flipping events and pagination styles to the background code, to page-flipping events that could be customized, to page-and-style and code-separated, and custom paging pager more and more easily expanded.
HtmlHelper Pager Extension
Pager V1.0:
<summary>///Pager V1.0///</summary>///<param name= "helper" >HtmlHelper</param>/ <param name= "Pager" > Pagination information </param>///<returns></returns> public static mvchtmlstring Pager (
This htmlhelper helper, Pagermodel Pager) {StringBuilder Sbhtmltext = new StringBuilder ();
Sbhtmltext.append ("<div style=\" text-align:center\ "><nav><ul class=\" pagination\ ">"); if (pager. PageIndex <= 1) {sbhtmltext.append ("<li class=\" disabled\ "><a href=\" javascript:void (0) \ "Aria-labe
L=\ "previous\" ><span aria-hidden=\ "true\" (">«</span></a></li>"); else {Sbhtmltext.appendformat ("<li><a href=\" javascript:loaddata (1) \ aria-label=\ "1\" ><sp An aria-hidden=\ "true\" >«</span></a></li> ", pager.
PAGEINDEX-1); Sbhtmltext.appendformat ("<li><a href=\" Javascript:loaddata ({0}) \ >{0}</a></li>Pager.
PAGEINDEX-1); } sbhtmltext.appendformat ("<li class=\" active\ "><a href=\" javascript:void (0) \ >{0}<span class=\ Sr-only\ "> (current) </span></a></li>", pager.
PageIndex); if (pager. PageIndex >= Pager. PageCount) {sbhtmltext.append ("<li class=\" disabled\ "><a href=\" javascript:void (0) \ "aria-label=\" Next
\ "><span aria-hidden=\" true\ ">»</span></a></li>"); else {Sbhtmltext.appendformat ("<li><a href=\" Javascript:loaddata ({0}) \ ">{0}</a></li& gt; ", Pager.
PageIndex + 1); Sbhtmltext.appendformat ("<li><a href=\" Javascript:loaddata ({0}) \ aria-label=\ "Next\" ><span Aria-hidden=\ "true\" >»</span></a></li> ", pager.
PageIndex + 1);
} sbhtmltext.append ("</ul></nav>"); Sbhtmltext.appendformat ("<div><span> every page has <strong>{0}</strong> data, altogether has <strong>{1} </strong> page, Total <strong>{2}</strong> data </span></div></div> ", pager. PageSize, Pager. PageCount, Pager.
TotalCount);
Return Mvchtmlstring.create (Sbhtmltext.tostring ());
}
Pager V2.0
<summary>///Pager V2.0///</summary>///<param name= "helper" >HtmlHelper</param>/ <param name= "Pager" > Pagination information </param>///<param name= "Onpagechange" > Paging event </param>///<retur ns></returns> public static mvchtmlstring Pager (this htmlhelper helper, Pagermodel Pager, Func<int, STRING&G T
Onpagechange) {StringBuilder sbhtmltext = new StringBuilder ();
Sbhtmltext.append ("<div style=\" text-align:center\ "><nav><ul class=\" pagination\ ">"); if (pager. PageIndex <= 1) {sbhtmltext.append ("<li class=\" disabled\ "><a href=\" javascript:void (0) \ "Aria-labe
L=\ "previous\" ><span aria-hidden=\ "true\" (">«</span></a></li>"); else {Sbhtmltext.appendformat ("<li><a href=\" {0}\ "aria-label=\" previous\ "><span Aria-hidd En=\ "true\" >«</span></a></li> ", Onpagechange (pager.
PAGEINDEX-1)); SbhtmltExt. AppendFormat ("<li><a href=\" {0}\ ">{1}</a></li>", Onpagechange (pager). PAGEINDEX-1), Pager.
PAGEINDEX-1); } sbhtmltext.appendformat ("<li class=\" active\ "><a href=\" javascript:void (0) \ >{0}<span class=\ Sr-only\ "> (current) </span></a></li>", pager.
PageIndex); if (pager. PageIndex >= Pager. PageCount) {sbhtmltext.append ("<li class=\" disabled\ "><a href=\" javascript:void (0) \ "aria-label=\" Next
\ "><span aria-hidden=\" true\ ">»</span></a></li>"); else {Sbhtmltext.appendformat ("<li><a href=\" {0}\ ">{1}</a></li>", Onpagechange (PA Ger. PageIndex + 1), pager.
PageIndex + 1); Sbhtmltext.appendformat ("<li><a href=\" {0}\ "aria-label=\" next\ "><span aria-hidden=\" true\ ">»") </span></a></li>, Onpagechange (pager).
PageIndex + 1));
} sbhtmltext.append ("</ul></nav>"); Sbhtmltext.appenDformat ("<div><span> every page has <strong>{0}</strong> data, altogether has <strong>{1}</strong> page, total <strong>{2}</strong> data </span></div></div> ", pager. PageSize, Pager. PageCount, Pager.
TotalCount);
Return Mvchtmlstring.create (Sbhtmltext.tostring ());
}
Pager V3.0
<summary>
///Pager V3.0
///</summary>
///<param name= "helper" >htmlhelper</ param>
///<param name= "Pager" > Pagination information </param>///<param name=
"Onpagechange" > Paging address or Event </param>
///<param name= "Pagerviewname" > Pagination partial view name </param>///<param name=
" DisplayMode "> Pagination display mode </param>
///<returns></returns> public
static mvchtmlstring Pager (This htmlhelper helper, Pagermodel Pager, Func<int, string> 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 page styles and paging events modify the CSHARP code if you want to modify it
Pager V2.0 can customize page-flipping events, but to modify the paging style or to modify the CSharp code
Pager V3.0 can modify page-flipping events or address and paging styles in custom paging partial view
End
Now that you have packaged this project Mvcsimplepager to Nuget http://www.nuget.org/packages/MvcSimplePager/, you can search for Mvcsimplepager in the VS Nuget package Manager To use.
Custom Mvcsimplepager projects and sample code: Https://github.com/WeihanLi/MvcSimplePager, you can make your own customizations as needed.
The above is the entire content of this article, I hope to help you learn, but also hope that we support the cloud habitat community.