Exemple #1
0
 private void AddPageNumbers(ICollection<PagerItem> results)
 {
     for (var pageIndex = _startPageIndex; pageIndex <= _endPageIndex; pageIndex++)
     {
         var text = pageIndex.ToString();
         if (pageIndex == _pageIndex && !string.IsNullOrEmpty(_pagerOptions.CurrentPageNumberFormatString))
             text = String.Format(_pagerOptions.CurrentPageNumberFormatString, text);
         else if (!string.IsNullOrEmpty(_pagerOptions.PageNumberFormatString))
             text = String.Format(_pagerOptions.PageNumberFormatString, text);
         var item = new PagerItem(text, pageIndex, false, PagerItemType.NumericPage);
         results.Add(item);
     }
 }
Exemple #2
0
 private void AddLast(ICollection<PagerItem> results)
 {
     var item = new PagerItem(_pagerOptions.LastPageText, _totalPageCount, _pageIndex >= _totalPageCount, PagerItemType.LastPage);
     if (!item.Disabled || (item.Disabled && _pagerOptions.ShowDisabledPagerItems))
         results.Add(item);
 }
Exemple #3
0
 private void AddNext(ICollection<PagerItem> results)
 {
     var item = new PagerItem(_pagerOptions.NextPageText, _pagedList.CurrentPageIndex + 1, _pagedList.CurrentPageIndex >= _pagedList.TotalPageCount, PagerItemType.NextPage);
     if (!item.Disabled || (item.Disabled && _pagerOptions.ShowDisabledPagerItems))
         results.Add(item);
 }
Exemple #4
0
 private void AddFirst(ICollection<PagerItem> results)
 {
     var item = new PagerItem(_pagerOptions.FirstPageText, 1, _pageIndex == 1, PagerItemType.FirstPage);
     //只有导航按钮未被禁用,或导航按钮被禁用但ShowDisabledButtoms=true时才添加
     if (!item.Disabled || (item.Disabled && _pagerOptions.ShowDisabledPagerItems))
         results.Add(item);
 }
Exemple #5
0
        private string GenerateAnchor(PagerItem item)
        {
            if (_msAjaxPaging)
            {
                var routeValues = GetCurrentRouteValues(_ajax.ViewContext);
                if (item.PageIndex == 0)
                {
                    routeValues[_pagerOptions.PageIndexParameterName] = ScriptPageIndexName;
                }
                else
                {
                    routeValues[_pagerOptions.PageIndexParameterName] = item.PageIndex;
                }
                if (!string.IsNullOrEmpty(_routeName))
                {
                    return(_ajax.RouteLink(item.Text, _routeName, routeValues, _ajaxOptions).ToString());
                }
                return(_ajax.RouteLink(item.Text, routeValues, _ajaxOptions).ToString());
            }
            string url = GenerateUrl(item.PageIndex);

            if (_pagerOptions.UseJqueryAjax)
            {
                if (_html.ViewContext.UnobtrusiveJavaScriptEnabled)
                {
                    var tag = new TagBuilder("a")
                    {
                        InnerHtml = item.Text
                    };
                    tag.MergeAttribute("href", url);
                    // 添加页码在每个a上   add by Liuyu 2012/03/27
                    tag.MergeAttribute("p", "" + item.PageIndex);
                    tag.MergeAttributes(_ajaxOptions.ToUnobtrusiveHtmlAttributes());
                    return(string.IsNullOrEmpty(url)
                        ? _html.Encode(item.Text) : tag.ToString(TagRenderMode.Normal));
                }
                var scriptBuilder = new StringBuilder();

                if (!string.IsNullOrEmpty(_ajaxOptions.OnFailure) || !string.IsNullOrEmpty(_ajaxOptions.OnBegin) || (!string.IsNullOrEmpty(_ajaxOptions.OnComplete) && _ajaxOptions.HttpMethod.ToUpper() != "GET"))
                {
                    scriptBuilder.Append("$.ajax({type:\'").Append(_ajaxOptions.HttpMethod.ToUpper() == "GET" ? "get" : "post");
                    scriptBuilder.Append("\',url:$(this).attr(\'href\'),success:function(data,status,xhr){$(\'#");
                    scriptBuilder.Append(_ajaxOptions.UpdateTargetId).Append("\').html(data);}");
                    if (!string.IsNullOrEmpty(_ajaxOptions.OnFailure))
                    {
                        scriptBuilder.Append(",error:").Append(HttpUtility.HtmlAttributeEncode(_ajaxOptions.OnFailure));
                    }
                    if (!string.IsNullOrEmpty(_ajaxOptions.OnBegin))
                    {
                        scriptBuilder.Append(",beforeSend:").Append(HttpUtility.HtmlAttributeEncode(_ajaxOptions.OnBegin));
                    }
                    if (!string.IsNullOrEmpty(_ajaxOptions.OnComplete))
                    {
                        scriptBuilder.Append(",complete:").Append(
                            HttpUtility.HtmlAttributeEncode(_ajaxOptions.OnComplete));
                    }
                    scriptBuilder.Append("});return false;");
                }
                else
                {
                    if (_ajaxOptions.HttpMethod.ToUpper() == "GET")
                    {
                        scriptBuilder.Append("$(\'#").Append(_ajaxOptions.UpdateTargetId);
                        scriptBuilder.Append("\').load($(this).attr(\'href\')");
                        if (!string.IsNullOrEmpty(_ajaxOptions.OnComplete))
                        {
                            scriptBuilder.Append(",").Append(HttpUtility.HtmlAttributeEncode(_ajaxOptions.OnComplete));
                        }
                        scriptBuilder.Append(");return false;");
                    }
                    else
                    {
                        scriptBuilder.Append("$.post($(this).attr(\'href\'), function(data) {$(\'#");
                        scriptBuilder.Append(_ajaxOptions.UpdateTargetId);
                        scriptBuilder.Append("\').html(data);});return false;");
                    }
                }
                return(string.IsNullOrEmpty(url)
                           ? _html.Encode(item.Text)
                           : String.Format(CultureInfo.InvariantCulture,
                                           "<a href=\"{0}\" onclick=\"{1}\">{2}</a>",
                                           url, scriptBuilder, item.Text));
            }
            return("<a href=\"" + url +
                   "\" onclick=\"window.open(this.attributes.getNamedItem('href').value,'_self')\"></a>");
        }
Exemple #6
0
 private string GenerateAnchor(PagerItem item)
 {
     string url = GenerateUrl(item.PageIndex);
     var tag = new TagBuilder("a") { InnerHtml = item.Text };
     tag.MergeAttribute("href", url);
     tag.MergeAttribute("data-page", item.PageIndex.ToString(CultureInfo.InvariantCulture));
     return string.IsNullOrEmpty(url) ? item.Text : tag.ToString(TagRenderMode.Normal);
 }
Exemple #7
0
 private IHtmlString GenerateAjaxPagerElement(PagerItem item)
 {
     if (item.Disabled)
         return CreateWrappedPagerElement(item,item.Text);
     return CreateWrappedPagerElement(item, GenerateAjaxAnchor(item));
 }
Exemple #8
0
 public PagedListResult(int page, int pageSize, long total)
 {
     Pager = new PagerItem(page, pageSize, total);
 }
Exemple #9
0
 private void AddFirst(ICollection<PagerItem> results)
 {
     var item = new PagerItem(_pagerOptions.FirstPageText, 1, _pageIndex == 1, PagerItemType.FirstPage);
     //Add pager item when PagerItem is not disabled or PagerItem is disabled but PagerOptions.ShowDisabledPagerItems is true
     if (!item.Disabled || (item.Disabled && _pagerOptions.ShowDisabledPagerItems))
         results.Add(item);
 }
Exemple #10
0
 private IHtmlString GeneratePagerElement(PagerItem item)
 {
     //pager item link
     string url = GenerateUrl(item.PageIndex);
     if (item.Disabled) //first,last,next or previous page
         return CreateWrappedPagerElement(item, item.Text);
     return CreateWrappedPagerElement(item,
                                      string.IsNullOrEmpty(url)
                                          ? HttpUtility.HtmlEncode(item.Text)
                                          : String.Format("<a href=\"{0}\">{1}</a>", url, item.Text));
 }
Exemple #11
0
        private string GenerateLink(PagerItem item)
        {

            return _helper.ActionLink(item.Text, _actionName, MakeRoute(item.PageIndex), _ajaxOptions).ToString();

        }
 public IList Select(PagerItem pagerItem)
 {
     return(_productDao.Select(pagerItem));
 }
Exemple #13
0
 public IList Select(PagerItem pagerItem)
 {
     return(Mapper.Instance().QueryForList("Order-Select-Pager", pagerItem));
 }
Exemple #14
0
 private MvcHtmlString GeneratePagerElement(PagerItem item)
 {
     //pager item link
     string url = GenerateUrl(item.PageIndex);
     if (item.Disabled) //first,last,next or previous page
         return CreateWrappedPagerElement(item, String.Format("<a disabled=\"disabled\" class='ajaxpage'>{0}</a>", item.Text));
     return CreateWrappedPagerElement(item,
                                      string.IsNullOrEmpty(url)
                                          ? _html.Encode(item.Text)
                                          : String.Format("<a href='{0}' class='ajaxpage'>{1}</a>", url, item.Text));
 }
Exemple #15
0
 private IHtmlString CreateWrappedPagerElement(PagerItem item, string el)
 {
     if (item.Disabled)
     {
         if ((!string.IsNullOrEmpty(_pagerOptions.DisabledPagerItemTemplate) ||!string.IsNullOrEmpty(_pagerOptions.NavigationPagerItemTemplate)||
              !string.IsNullOrEmpty(_pagerOptions.PagerItemTemplate)))
         {
             return
                 MvcHtmlString.Create(
                     string.Format(
                         _pagerOptions.DisabledPagerItemTemplate ?? (_pagerOptions.NavigationPagerItemTemplate ??
                                                                     _pagerOptions.PagerItemTemplate), el));
         }
         return MvcHtmlString.Create(el);
     }
     string navStr = el;
     switch (item.Type)
     {
         case PagerItemType.FirstPage:
         case PagerItemType.LastPage:
         case PagerItemType.NextPage:
         case PagerItemType.PrevPage:
             if ((!string.IsNullOrEmpty(_pagerOptions.NavigationPagerItemTemplate) ||
                  !string.IsNullOrEmpty(_pagerOptions.PagerItemTemplate)))
                 navStr =
                     string.Format(
                         _pagerOptions.NavigationPagerItemTemplate ??
                         _pagerOptions.PagerItemTemplate, el);
             break;
         case PagerItemType.MorePage:
             if ((!string.IsNullOrEmpty(_pagerOptions.MorePagerItemTemplate) ||
                  !string.IsNullOrEmpty(_pagerOptions.PagerItemTemplate)))
                 navStr =
                     string.Format(
                         _pagerOptions.MorePagerItemTemplate ??
                         _pagerOptions.PagerItemTemplate, el);
             break;
         case PagerItemType.NumericPage:
             if (item.PageIndex == _pageIndex &&
                 (!string.IsNullOrEmpty(_pagerOptions.CurrentPagerItemTemplate) ||
                  !string.IsNullOrEmpty(_pagerOptions.PagerItemTemplate))) //current page
                 navStr =
                     string.Format(
                         _pagerOptions.CurrentPagerItemTemplate ??
                         _pagerOptions.PagerItemTemplate, el);
             else if (!string.IsNullOrEmpty(_pagerOptions.NumericPagerItemTemplate) ||
                      !string.IsNullOrEmpty(_pagerOptions.PagerItemTemplate))
                 navStr =
                     string.Format(
                         _pagerOptions.NumericPagerItemTemplate ??
                         _pagerOptions.PagerItemTemplate, el);
             break;
     }
     return MvcHtmlString.Create(navStr);
 }
Exemple #16
0
        private MvcHtmlString GenerateMsAjaxPagerElement(PagerItem item)
        {
            if (item.PageIndex == _pageIndex && !item.Disabled) //current page index
                return CreateWrappedPagerElement(item, item.Text);
            if (item.Disabled)
                return CreateWrappedPagerElement(item, string.Format("<a disabled=\"disabled\" class='ajaxpage'>{0}</a>", item.Text));

            // return null if current page index less than 1 or large than total page count
            if (item.PageIndex < 1 || item.PageIndex > _totalPageCount)
                return null;

            return CreateWrappedPagerElement(item, GenerateAnchor(item));
        }
Exemple #17
0
    private void RecalculateResponsivity()
    {
        if (!init)
        {
            return;
        }

        layoutSize = rectTransform.rect.size;

        colCount = Mathf.FloorToInt(layoutSize.x / cellMinSize.x);
        if (colCount <= 0)
        {
            colCount = 1;
        }

        rowCount = Mathf.FloorToInt(layoutSize.y / cellMinSize.y);
        if (rowCount <= 0)
        {
            rowCount = 1;
        }

        prevCellCount = cellCount;
        cellCount     = rowCount * colCount;

        cellSize = new Vector2(
            (layoutSize.x / colCount) - spacing.x,
            (layoutSize.y / rowCount) - spacing.y);

        bool cellCountChanged = prevCellCount != cellCount;

        if (cellCountChanged)
        {
            int itemHoldersToSpawn = cellCount - prevCellCount;
            if (itemHoldersToSpawn < 0)
            {
                // Despawn items from the end of the layout.
                for (int i = 0; i < Mathf.Abs(itemHoldersToSpawn); i++)
                {
                    PagerItem despawnedItem = items[items.Count - 1];
                    items.Remove(despawnedItem);
                    // This plugin is originally intended for games on mobile platforms without
                    // orientation support. Cells count will be different for the first time,
                    // after that it will stay constant. Not using pooling is safe here.
                    Destroy(despawnedItem.gameObject);
                }
            }
            else
            {
                // Add more items to the end of the layout.
                for (int i = 0; i < itemHoldersToSpawn; i++)
                {
                    GameObject newObject = Instantiate(itemObject);
                    newObject.transform.SetParent(rectTransform, false);
                    PagerItem newItem = newObject.GetComponent <PagerItem>();
                    newItem.Prepare(items.Count, callback);
                    items.Add(newItem);
                }
            }
            ShowDataForPage(currPageIndex);
        }
    }
 private string GenerateAjaxAnchor(PagerItem item)
 {
     string url = GenerateUrl(item.PageIndex);
     if (string.IsNullOrWhiteSpace(url))
         return HttpUtility.HtmlEncode(item.Text);
     var tag = new TagBuilder("a") { InnerHtml = item.Text };
     tag.MergeAttribute("href", url);
     tag.MergeAttribute("data-pageindex", item.PageIndex.ToString(CultureInfo.InvariantCulture));
     return tag.ToString(TagRenderMode.Normal);
 }
Exemple #19
0
 private void AddNext(List<PagerItem> results)
 {
     if (_pageIndex < (_totalPageCount-1))
     {
         var text = _options.NextText;
         var url = GenerateUrl(_pageIndex + 1);
         var item = new PagerItem(text, url, false);
         results.Add(item);
     }
 }
Exemple #20
0
 private MvcHtmlString GenerateAjaxPagerElement(PagerItem item)
 {
     return CreateWrappedPagerElement(item, item.Disabled ? String.Format("<a disabled=\"disabled\">{0}</a>", item.Text) : GenerateAnchor(item));
 }
Exemple #21
0
 private void AddPageNumbers(List<PagerItem> results)
 {
     for (var pageIndex = _startPageIndex; pageIndex < _endPageIndex; pageIndex++)
     {
         var text = (pageIndex + 1).ToString();
         var url = GenerateUrl(pageIndex);
         var isSelected = pageIndex == _pageIndex;
         if (isSelected)
             text = String.Format(_options.SelectedPageNumberFormatString, text);
         else
             text = String.Format(_options.PageNumberFormatString, text);
         var item = new PagerItem(text, url, isSelected);
         results.Add(item);
     }
 }
Exemple #22
0
        private void AddFirst(ICollection<PagerItem> results)
        {
            PagerItem item = new PagerItem(_pagerOptions.FirstPageText, 1, _pagedList.CurrentPageIndex == 1, PagerItemType.FirstPage);

            if (!item.Disabled || (item.Disabled && _pagerOptions.ShowDisabledPagerItems))
                results.Add(item);
        }
Exemple #23
0
 private void AddPostRange(List<PagerItem> results)
 {
     if (_endPageIndex < _totalPageCount)
     {
         var text = "...";
         var index = _startPageIndex + _options.MaximumPageNumbers;
         if (index > _totalPageCount) index = _totalPageCount;
         var url = GenerateUrl(index);
         var item = new PagerItem(text, url, false);
         results.Add(item);
     }
 }
Exemple #24
0
 private void AddPrevious(ICollection<PagerItem> results)
 {
     var item = new PagerItem(_pagerOptions.PrevPageText, _pageIndex - 1, _pageIndex == 1, PagerItemType.PrevPage);
     if (!item.Disabled || (item.Disabled && _pagerOptions.ShowDisabledPagerItems))
         results.Add(item);
 }
Exemple #25
0
 private void AddPreRange(List<PagerItem> results)
 {
     if (_startPageIndex > 0)
     {
         var text = "...";
         var index = _startPageIndex - _options.MaximumPageNumbers;
         if (index < 0) index = 0;
         var url = GenerateUrl(index);
         var item = new PagerItem(text, url, false);
         results.Add(item);
     }
 }
Exemple #26
0
 private void AddMoreBefore(ICollection<PagerItem> results)
 {
     if (_startPageIndex > 1 && _pagerOptions.ShowMorePagerItems)
     {
         var index = _startPageIndex - 1;
         if (index < 1) index = 1;
         var item = new PagerItem(_pagerOptions.MorePageText, index, false, PagerItemType.MorePage);
         results.Add(item);
     }
 }
Exemple #27
0
 private void AddPrevious(List<PagerItem> results)
 {
     if (_pageIndex > 0)
     {
         var text = _options.PreviousText;
         var url = GenerateUrl(_pageIndex - 1);
         var item = new PagerItem(text, url, false);
         results.Add(item);
     }
 }
Exemple #28
0
 private void AddMoreAfter(ICollection<PagerItem> results)
 {
     if (_endPageIndex < _totalPageCount)
     {
         var index = _startPageIndex + _pagerOptions.NumericPagerItemCount;
         if (index > _totalPageCount) { index = _totalPageCount; }
         var item = new PagerItem(_pagerOptions.MorePageText, index, false, PagerItemType.MorePage);
         results.Add(item);
     }
 }
Exemple #29
0
 private string GenerateLink(PagerItem item)
 {
     return String.Format("<a href='{0}'>{1}</a>", item.Url, _helper.Encode(item.Text));
 }
Exemple #30
0
        private string GenerateAnchor(PagerItem item)
        {
            if (_msAjaxPaging)
            {
                var routeValues = GetCurrentRouteValues(_ajax.ViewContext);
                if (item.PageIndex == 0)
                    routeValues[_pagerOptions.PageIndexParameterName] = ScriptPageIndexName;
                else
                    routeValues[_pagerOptions.PageIndexParameterName] = item.PageIndex;
                if (!string.IsNullOrEmpty(_routeName))
                    return _ajax.RouteLink(item.Text, _routeName, routeValues, _ajaxOptions).ToString();
                return _ajax.RouteLink(item.Text, routeValues, _ajaxOptions).ToString();
            }
            string url = GenerateUrl(item.PageIndex);
            if (_pagerOptions.UseJqueryAjax)
            {
                if (_html.ViewContext.UnobtrusiveJavaScriptEnabled)
                {
                    var tag = new TagBuilder("a") { InnerHtml = item.Text };
                    tag.MergeAttribute("href", url);
                    // 添加页码在每个a上   add by Liuyu 2012/03/27
                    tag.MergeAttribute("p", "" + item.PageIndex);
                    tag.MergeAttributes(_ajaxOptions.ToUnobtrusiveHtmlAttributes());
                    return string.IsNullOrEmpty(url)
                        ? _html.Encode(item.Text) : tag.ToString(TagRenderMode.Normal);
                }
                var scriptBuilder = new StringBuilder();

                if (!string.IsNullOrEmpty(_ajaxOptions.OnFailure) || !string.IsNullOrEmpty(_ajaxOptions.OnBegin) || (!string.IsNullOrEmpty(_ajaxOptions.OnComplete) && _ajaxOptions.HttpMethod.ToUpper() != "GET"))
                {
                    scriptBuilder.Append("$.ajax({type:\'").Append(_ajaxOptions.HttpMethod.ToUpper() == "GET" ? "get" : "post");
                    scriptBuilder.Append("\',url:$(this).attr(\'href\'),success:function(data,status,xhr){$(\'#");
                    scriptBuilder.Append(_ajaxOptions.UpdateTargetId).Append("\').html(data);}");
                    if (!string.IsNullOrEmpty(_ajaxOptions.OnFailure))
                        scriptBuilder.Append(",error:").Append(HttpUtility.HtmlAttributeEncode(_ajaxOptions.OnFailure));
                    if (!string.IsNullOrEmpty(_ajaxOptions.OnBegin))
                        scriptBuilder.Append(",beforeSend:").Append(HttpUtility.HtmlAttributeEncode(_ajaxOptions.OnBegin));
                    if (!string.IsNullOrEmpty(_ajaxOptions.OnComplete))
                        scriptBuilder.Append(",complete:").Append(
                            HttpUtility.HtmlAttributeEncode(_ajaxOptions.OnComplete));
                    scriptBuilder.Append("});return false;");
                }
                else
                {
                    if (_ajaxOptions.HttpMethod.ToUpper() == "GET")
                    {
                        scriptBuilder.Append("$(\'#").Append(_ajaxOptions.UpdateTargetId);
                        scriptBuilder.Append("\').load($(this).attr(\'href\')");
                        if (!string.IsNullOrEmpty(_ajaxOptions.OnComplete))
                            scriptBuilder.Append(",").Append(HttpUtility.HtmlAttributeEncode(_ajaxOptions.OnComplete));
                        scriptBuilder.Append(");return false;");
                    }
                    else
                    {
                        scriptBuilder.Append("$.post($(this).attr(\'href\'), function(data) {$(\'#");
                        scriptBuilder.Append(_ajaxOptions.UpdateTargetId);
                        scriptBuilder.Append("\').html(data);});return false;");
                    }
                }
                return string.IsNullOrEmpty(url)
                           ? _html.Encode(item.Text)
                           : String.Format(CultureInfo.InvariantCulture,
                                           "<a href=\"{0}\" class='ajaxpage' onclick=\"{1}\">{2}</a>",
                                           url, scriptBuilder, item.Text);
            }
            return "<a href=\"" + url +
                   "\" onclick=\"window.open(this.attributes.getNamedItem('href').value,'_self')\"></a>";
        }
        /// <summary>
        /// Creates complete item list by adding navigation items for
        /// </summary>
        /// <returns></returns>
        protected List <PagerItem> CreateItemList()
        {
            if (!ShowPaginator || ListItems.TotalPages <= 1)
            {
                return(new List <PagerItem>());
            }

            var pageNumber = ListItems.PageNumber;
            var pageCount  = ListItems.TotalPages;

            var results = new List <PagerItem>();

            PagerItem item;

            // First link.
            if (ShowFirst && pageNumber > 1)
            {
                item = new PagerItem(T("Pager.First"), GenerateUrl(1), PagerItemType.FirstPage)
                {
                    State = (pageNumber > 1) ? PagerItemState.Normal : PagerItemState.Disabled
                };
                results.Add(item);
            }

            // Previous link.
            if (ShowPrevious && pageNumber > 1)
            {
                item = new PagerItem(T("Pager.Previous"), GenerateUrl(pageNumber - 1), PagerItemType.PreviousPage)
                {
                    State = (pageNumber > 1) ? PagerItemState.Normal : PagerItemState.Disabled
                };
                results.Add(item);
            }

            // Add the page number items.
            if (MaxPagesToDisplay > 0)
            {
                AddPageItemsList(results);
            }

            // Next link.
            var hasNext = false;

            if (ShowNext && pageNumber < pageCount)
            {
                item = new PagerItem(T("Pager.Next"), GenerateUrl(pageNumber + 1), PagerItemType.NextPage)
                {
                    State = (pageNumber == pageCount) ? PagerItemState.Disabled : PagerItemState.Normal
                };
                results.Add(item);
                hasNext = true;
            }

            // Last link.
            if (ShowLast && pageNumber < pageCount)
            {
                item = new PagerItem(T("Pager.Last"), GenerateUrl(pageCount), PagerItemType.LastPage)
                {
                    State = (pageNumber == pageCount) ? PagerItemState.Disabled : PagerItemState.Normal
                };
                if (Style == PagerStyle.Pagination || !hasNext)
                {
                    results.Add(item);
                }
                else
                {
                    // BlogStyle Last-Item is right-aligned, so shift left.
                    results.Insert(results.Count - 1, item);
                }
            }

            return(results);
        }
Exemple #32
0
 private MvcHtmlString GenerateJqAjaxPagerElement(PagerItem item)
 {
     if (item.Disabled)
         return CreateWrappedPagerElement(item, String.Format("<a disabled=\"disabled\" class='ajaxpage'>{0}</a>", item.Text));
     return CreateWrappedPagerElement(item, GenerateAnchor(item));
 }
        /// <summary>
        /// Creates li tag from <see cref="PagerItem"/> and appends it to ul tag.
        /// </summary>
        protected virtual void AppendItem(TagBuilder itemsUl, PagerItem item)
        {
            var itemLi = new TagBuilder("li");

            using var classList = itemLi.GetClassList();

            if (item.State == PagerItemState.Disabled)
            {
                classList.Add("disabled");
            }
            else if (item.State == PagerItemState.Selected)
            {
                classList.Add("active");
            }

            if (item.Type == PagerItemType.Text)
            {
                classList.Add("shrinked");
            }

            if (Style == PagerStyle.Blog && item.IsNavButton)
            {
                classList.Add((item.Type == PagerItemType.PreviousPage || item.Type == PagerItemType.FirstPage) ? "previous" : "next");
            }

            classList.Add("page-item");

            // Dispose here to write all collected classes into tag.
            classList.Dispose();

            var innerAOrSpan = new TagBuilder(item.Type == PagerItemType.Page || item.IsNavButton ? "a" : "span");

            if (item.Type == PagerItemType.Page || item.IsNavButton)
            {
                innerAOrSpan.Attributes.Add("href", item.Url);

                if (item.IsNavButton)
                {
                    innerAOrSpan.Attributes.Add("title", item.Text.AttributeEncode());
                    innerAOrSpan.Attributes.Add("aria-label", item.Text.AttributeEncode());
                    innerAOrSpan.Attributes.Add("tab-index", "-1");
                    if (Style != PagerStyle.Blog)
                    {
                        innerAOrSpan.Attributes.Add("rel", "tooltip");
                        innerAOrSpan.AddCssClass("page-nav");
                    }
                }
                else
                {
                    var formatStr = ItemTitleFormatString;
                    if (formatStr.HasValue())
                    {
                        innerAOrSpan.Attributes.Add("title", string.Format(formatStr, item.Text).AttributeEncode());
                        innerAOrSpan.Attributes.Add("rel", "tooltip");
                    }
                }
            }

            innerAOrSpan.AddCssClass("page-link");
            itemLi.InnerHtml.AppendHtml(GetItemInnerContent(item, innerAOrSpan));
            itemsUl.InnerHtml.AppendHtml(itemLi);
        }
Exemple #34
0
 private MvcHtmlString CreateWrappedPagerElement(PagerItem item, string el)
 {
     string navStr = el;
     switch (item.Type)
     {
         case PagerItemType.FirstPage:
         case PagerItemType.LastPage:
         case PagerItemType.NextPage:
         case PagerItemType.PrevPage:
             if ((!string.IsNullOrEmpty(_pagerOptions.NavigationPagerItemWrapperFormatString) ||
                  !string.IsNullOrEmpty(_pagerOptions.PagerItemWrapperFormatString)))
                 navStr =
                     string.Format(
                         _pagerOptions.NavigationPagerItemWrapperFormatString ??
                         _pagerOptions.PagerItemWrapperFormatString, el);
             break;
         case PagerItemType.MorePage:
             if ((!string.IsNullOrEmpty(_pagerOptions.MorePagerItemWrapperFormatString) ||
                  !string.IsNullOrEmpty(_pagerOptions.PagerItemWrapperFormatString)))
                 navStr =
                     string.Format(
                         _pagerOptions.MorePagerItemWrapperFormatString ??
                         _pagerOptions.PagerItemWrapperFormatString, el);
             break;
         case PagerItemType.NumericPage:
             if (item.PageIndex == _pageIndex &&
                 (!string.IsNullOrEmpty(_pagerOptions.CurrentPagerItemWrapperFormatString) ||
                  !string.IsNullOrEmpty(_pagerOptions.PagerItemWrapperFormatString))) //current page
                 navStr =
                     string.Format(
                         _pagerOptions.CurrentPagerItemWrapperFormatString ??
                         _pagerOptions.PagerItemWrapperFormatString, el);
             else if (!string.IsNullOrEmpty(_pagerOptions.NumericPagerItemWrapperFormatString) ||
                      !string.IsNullOrEmpty(_pagerOptions.PagerItemWrapperFormatString))
                 navStr =
                     string.Format(
                         _pagerOptions.NumericPagerItemWrapperFormatString ??
                         _pagerOptions.PagerItemWrapperFormatString, el);
             break;
     }
     return MvcHtmlString.Create(navStr + _pagerOptions.SeparatorHtml);
 }
Exemple #35
0
        /// <summary>
        ///     Create a new <see cref="PagerItemGenerationContext" /> from a base <see cref="PagerGenerationContext" />.
        /// </summary>
        /// <param name="baseContext">The base <see cref="PagerGenerationContext" /> instance.</param>
        /// <param name="pagerItem">The current page item.</param>
        /// <param name="pagerItemOptions">The current page item options.</param>
        public PagerItemGenerationContext([NotNull] PagerGenerationContext baseContext, PagerItem pagerItem,
                                          PagerItemOptions pagerItemOptions)
        {
            if (baseContext == null)
            {
                throw new ArgumentNullException(nameof(baseContext));
            }

            CurrentPage    = baseContext.CurrentPage;
            TotalPage      = baseContext.TotalPage;
            Options        = baseContext.Options;
            ViewContext    = baseContext.ViewContext;
            GenerationMode = baseContext.GenerationMode;

            PagerItem        = pagerItem;
            PagerItemOptions = pagerItemOptions;
        }