//public static string RenderPagination<TModel, TSearchCriteriaViewModel> // (this AjaxHelper ajaxHelper, SearchResultViewModelBase<TModel, TSearchCriteriaViewModel> searchResult, string action, string controller, // string httpMethod = "POST", string updateTargetId = "", bool isViewModelSearchResults = true) where TSearchCriteriaViewModel : SearchCriteriaViewModelBase<TModel> //{ // if (String.IsNullOrWhiteSpace(updateTargetId)) // { // var pluralizationService = PluralizationService.CreateService( // CultureInfo.GetCultureInfo("en-us")); // string typename = typeof(TModel).Name.ToLower(); // string typeNamePlural = pluralizationService.IsPlural(typename) // ? typename // : pluralizationService.Pluralize(typename); // updateTargetId = typeNamePlural + "-list"; // } // UrlHelper urlHelper = new UrlHelper(HttpContext.Current.Request.RequestContext); // TagBuilder unorderedListTag = new TagBuilder("ul"); // unorderedListTag.AddCssClass("pagination"); // for (int i = 0; i < searchResult.PageCount; i++) // { // TagBuilder listItemTag = new TagBuilder("li"); // string prefix = String.Empty; // if (isViewModelSearchResults) // { // prefix = // ReflectionUtils.GetMemberName( // ((SearchResultViewModelBase<TModel, TSearchCriteriaViewModel> c) => // c.SearchCriteriaViewModel)) + "."; // } // RouteValueDictionary pageDictionary = searchResult.SearchCriteriaViewModel.ToRouteValueDictionary(i + 1, prefix); // string url = urlHelper.Action(action, controller, pageDictionary); // CreaDevAjaxOptions ajaxOptions = new CreaDevAjaxOptions(httpMethod, updateTargetId, "#sss", "#sss"); // //anchorTag.Attributes.Add("href", url); // if (searchResult.PageNumber == i + 1) // { // listItemTag.Attributes.Add("class", "active"); // listItemTag.InnerHtml = "<a>" + (i + 1).ToString() + "</a>"; // } // else // { // listItemTag.InnerHtml = ajaxHelper.ActionLink((i + 1).ToString(), action, controller, pageDictionary, ajaxOptions).ToString(); // } // unorderedListTag.InnerHtml += listItemTag.ToString(); // } // return unorderedListTag.ToString(); //} public static string RenderPagination(this AjaxHelper ajaxHelper, SearchResultViewModelBasewithTabularDataViewModel searchResult, RouteValueDictionary additionalValues = null, string httpMethod = "POST", string updateTargetSelector = "", bool isViewModelSearchResults = true, string activeListItemCssClass = "active") { // 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, searchResult.Action, searchResult.Controller, additionalValues, httpMethod, updateTargetSelector, activeListItemCssClass, i + 1); unorderedListTag.InnerHtml += listItemTagString; } return(unorderedListTag.ToString()); }
private static string GetPageLinkAjax(AjaxHelper ajaxHelper, SearchResultViewModelBasewithTabularDataViewModel searchResult, string action, string controller, RouteValueDictionary additionalValues, string httpMethod, string updateTargetSelector, string activeListItemCssClass, int pageNumber) { TagBuilder listItemTag = new TagBuilder("li"); searchResult.RouteValueDictionary["PageNumber"] = pageNumber; RouteValueDictionary pageDictionary = searchResult.RouteValueDictionary; if (additionalValues != null && additionalValues.Count > 0) { foreach (var additionalValue in additionalValues) { pageDictionary.Add(additionalValue.Key, additionalValue.Value); } } CreaDevAjaxOptions ajaxOptions = new CreaDevAjaxOptions(httpMethod, updateTargetSelector, "", ""); 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); }