예제 #1
0
        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);
        }
예제 #2
0
        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());
        }