Witam, proszę o wyjaśnienie mi jak działa klasa PagingHelpers
, tak żebym zrozumiał co się dzieje.
Wiem co to jest HtmlHelper
, że używam jej w celu zrobienie hyperlinków, wiem też czemu moja metoda rozszerzająca odnosi się do klasy HtmlHelper
, +- ogarnąłem co robią metody w pętli for, ale właśnie tylko +- . Czytałem na temat metod związanych z TagBuilder
ale nadal się gubię.
public static class PagingHelpers
{
public static MvcHtmlString PageLinks(this HtmlHelper html, PagingInfo pagingInfo, Func<int, string> pageUrl)
{
StringBuilder result = new StringBuilder();
for (int i = 1; i <= pagingInfo.TotalPages; i++)
{
TagBuilder tag = new TagBuilder("a"); //tworzenie znacznika <a>
tag.MergeAttribute("href", pageUrl(i));
tag.InnerHtml = i.ToString();
if (i == pagingInfo.CurrentPage)
tag.AddCssClass("selected");
result.Append(tag.ToString());
}
return MvcHtmlString.Create(result.ToString());
}
}
I tutaj jeszcze klasa PagingInfo
żeby było wiadomo co w niej jest:
public class PagingInfo
{
public int TotalItems { get; set; }
public int ItemsPerPage { get; set; }
public int CurrentPage { get; set; }
public int TotalPages
{
get { return (int)Math.Ceiling((decimal)TotalItems / ItemsPerPage); }
}
}
P.S Jaka jest praktyczna różnica jeżeli użyję metody HtmlHelper
w takiej postaci co wyżej, a co by było gdybym skorzystał w widoku z @Html.ActionLink
i sobie to jakoś w ten sposób ogarnął ? <- jeżeli to pytanie jest głupie to proszę się nie śmiać po prostu ostatnio generowałem hyperlinki dzięki którym mogłem zmieniać strony właśnie za pomocą @Html.ActionLink
tylko że wtedy miałem kilka widoków a teraz póki co mam jeden.
`dodanie znaczników ``` - @furious programming