private static string GetPageLinkAjax <TModel, TSearchCriteriaViewModel>(AjaxHelper ajaxHelper, SearchResultViewModelBase <TModel, TSearchCriteriaViewModel> searchResult, string action, string controller, RouteValueDictionary additionalValues, string httpMethod, string updateTargetSelector, string activeListItemCssClass, int pageNumber) where TSearchCriteriaViewModel : SearchCriteriaViewModelBase <TModel> { TagBuilder listItemTag = new TagBuilder("li"); RouteValueDictionary pageDictionary = searchResult.SearchCriteriaViewModel.ToRouteValueDictionary(pageNumber); if (additionalValues != null && additionalValues.Count > 0) { foreach (var additionalValue in additionalValues) { pageDictionary.Add(additionalValue.Key, additionalValue.Value); } } CreaDevAjaxOptions ajaxOptions = new CreaDevAjaxOptions(httpMethod, updateTargetSelector, "#sss", "#sss"); if (searchResult.PageNumber == pageNumber) { listItemTag.Attributes.Add("class", activeListItemCssClass); listItemTag.InnerHtml = "<a>" + (pageNumber).ToString() + "</a>"; } else { listItemTag.InnerHtml = ajaxHelper.ActionLink((pageNumber).ToString(), action, controller, pageDictionary, ajaxOptions).ToString(); //Wrokaround bug that generates space befpre the values listItemTag.InnerHtml = listItemTag.InnerHtml.Replace("%20?", "?"); } string listItemTagString = listItemTag.ToString(); return(listItemTagString); }
public static string RenderPagination <TModel, TSearchCriteriaViewModel> (this AjaxHelper ajaxHelper, SearchResultViewModelBase <TModel, TSearchCriteriaViewModel> searchResult, string action, string controller, RouteValueDictionary additionalValues = null, string httpMethod = "POST", string updateTargetSelector = "", bool isViewModelSearchResults = true, string activeListItemCssClass = "active") where TSearchCriteriaViewModel : SearchCriteriaViewModelBase <TModel> { // basically if the item is issue, it will return issues-list if (String.IsNullOrWhiteSpace(updateTargetSelector)) { updateTargetSelector = GetTypeNameList <TModel, TSearchCriteriaViewModel>(); } TagBuilder unorderedListTag = new TagBuilder("ul"); unorderedListTag.AddCssClass("pagination"); for (int i = 0; i < searchResult.PageCount; i++) { var listItemTagString = GetPageLinkAjax(ajaxHelper, searchResult, action, controller, additionalValues, httpMethod, updateTargetSelector, activeListItemCssClass, i + 1); unorderedListTag.InnerHtml += listItemTagString; } return(unorderedListTag.ToString()); }