public static PagedListRenderOptions TwitterBootstrapPager4
{
get
{
return new PagedListRenderOptions
{
DisplayLinkToFirstPage = PagedListDisplayMode.Never,
DisplayLinkToLastPage = PagedListDisplayMode.Never,
DisplayLinkToPreviousPage = PagedListDisplayMode.Always,
DisplayLinkToNextPage = PagedListDisplayMode.Always,
DisplayLinkToIndividualPages = true,
UlElementClasses = new[] { "pagination" },
LiElementClasses = new[] { "page-item" },
AhrefElementClasses = new[] {"page-link"},
ClassToApplyToFirstListItemInPager = null,
ClassToApplyToLastListItemInPager = null,
LinkToPreviousPageFormat = "Previous",
LinkToNextPageFormat = "Next"
};
}
}
private TagBuilder First()
{
const int targetPageNumber = 1;
var first = new TagBuilder("a");
foreach (var @class in this.Options.AhrefElementClasses)
{
first.AddCssClass(@class);
}
first.InnerHtml.AppendHtml(string.Format(this.Options.LinkToFirstPageFormat, targetPageNumber));
if (this.List.IsFirstPage) {
return WrapInListItem(first, "PagedList-skipToFirst", "disabled");
}
first.Attributes["href"] = GeneratePageUrl(targetPageNumber);
return WrapInListItem(first, "PagedList-skipToFirst");
}
private TagBuilder Previous()
{
var targetPageNumber = this.List.PageNumber - 1;
var previous = new TagBuilder("a");
foreach (var @class in this.Options.AhrefElementClasses)
{
previous.AddCssClass(@class);
}
previous.InnerHtml.AppendHtml(string.Format(this.Options.LinkToPreviousPageFormat, targetPageNumber));
previous.Attributes["rel"] = "prev";
if (!this.List.HasPreviousPage)
{
return WrapInListItem(previous, "PagedList-skipToPrevious", "disabled");
}
previous.Attributes["href"] = this.GeneratePageUrl(targetPageNumber);
return WrapInListItem(previous, "PagedList-skipToPrevious");
}
private TagBuilder Page(int i)
{
var format = this.Options.FunctionToDisplayEachPageNumber
?? (pageNumber => string.Format(this.Options.LinkToIndividualPageFormat, pageNumber));
var targetPageNumber = i;
var page = new TagBuilder("a");
foreach (var @class in this.Options.AhrefElementClasses)
{
page.AddCssClass(@class);
}
page.InnerHtml.AppendHtml(format(targetPageNumber));
if (i == this.List.PageNumber)
return WrapInListItem(page, "active");
page.Attributes["href"] = this.GeneratePageUrl(targetPageNumber);
return WrapInListItem(page);
}
private TagBuilder Next()
{
var targetPageNumber = this.List.PageNumber + 1;
var next = new TagBuilder("a");
foreach (var @class in this.Options.AhrefElementClasses)
{
next.AddCssClass(@class);
}
next.InnerHtml.AppendHtml(string.Format(this.Options.LinkToNextPageFormat, targetPageNumber));
next.Attributes["rel"] = "next";
if (!this.List.HasNextPage)
{
return WrapInListItem(next, "PagedList-skipToNext", "disabled");
}
next.Attributes["href"] = this.GeneratePageUrl(targetPageNumber);
return WrapInListItem(next, "PagedList-skipToNext");
}
private TagBuilder Last()
{
var targetPageNumber = this.List.PageCount;
var last = new TagBuilder("a");
foreach (var @class in this.Options.AhrefElementClasses)
{
last.AddCssClass(@class);
}
last.InnerHtml.AppendHtml(string.Format(this.Options.LinkToLastPageFormat, targetPageNumber));
if (this.List.IsLastPage)
{
return WrapInListItem(last, "PagedList-skipToLast", "disabled");
}
last.Attributes["href"] = this.GeneratePageUrl(targetPageNumber);
return WrapInListItem(last, "PagedList-skipToLast");
}
Please make PagedListRenderOptions partial class to add custom button text and styles.