Ejemplo n.º 1
0
        //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());
        }
Ejemplo n.º 2
0
        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);
        }