MvcPaging i szablon dla Zurb Foundation

Istnieje kilka popularnych bibliotek do paginacji dla ASP MVC. Jedna z moich ulubionych to MvcPaging której autorem jest Martijn Boland.

W wersji 2.0 tej biblioteki pojawiło się kilka nowych metod. Jedną z nich jest DisplayTemplate. Której argumentem jest szablon. W demie zamieszonym na tej stronie Martijn zbudował szablon dla Twitter Bootstrap i jak widać efekt jest bardzo dobry.

Martijn nie zatroszczył się o szablon dla Zurb Foundation. Oba frameworki są do siebie bardzo podobne, więc postanowiłem dostosować istniejące rozwiązanie dla moich potrzeb. Okazało się że jedynym elementem który należało dodać to nowy szablon, który zaimplementowałem na podstawie istniejącego (w demie Martija Views\Shared\BootstrapPagination.cshtml). Kod tego szablonu to:

@model PaginationModel

<div class="pagination">
        <ul class="pagination">@foreach (var link in Model.PaginationLinks) { @BuildLink(link) }</ul>
</div>

@helper BuildLink(PaginationLink link)
{
	var liBuilder = new TagBuilder("li");
	if (link.IsCurrent)
	{
		liBuilder.MergeAttribute("class", "current");
	}
	if (! link.Active)
	{
		liBuilder.MergeAttribute("class", "unavailable");
	}
	
	var aBuilder = new TagBuilder("a");
	if (link.Url == null)
	{
		aBuilder.MergeAttribute("href", "#");
	}
	else
	{
		aBuilder.MergeAttribute("href", link.Url);
	}
	aBuilder.SetInnerText(link.DisplayText);
	liBuilder.InnerHtml = aBuilder.ToString();
	
	@Html.Raw(liBuilder.ToString())
}

Efekt który można uzyskać dzięki temu szablonowi znajduje się na poniższej ilustracji.

zurb-paginacja

Share Button

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload the CAPTCHA.