Ejemplo n.º 1
0
        protected override void WriteSelf(System.IO.TextWriter writer, IBootstrapContext context)
        {
            if (CurrentPageValue < 1)
            {
                throw new ArgumentOutOfRangeException("CurrentPage must be 1 or greater");
            }
            if (TotalPagesValue < 1)
            {
                throw new ArgumentOutOfRangeException("TotalPages must be 1 or greater");
            }
            if (CurrentPageValue > TotalPagesValue)
            {
                throw new ArgumentOutOfRangeException(string.Format("CurrentPage ({0}) must be less or equal to TotalPages ({1})", CurrentPageValue, TotalPagesValue));
            }

            var pageStart = (PageButtonsCountBackValue == -1) ? 1 : Math.Max(1, CurrentPageValue - PageButtonsCountBackValue);
            var pageEnd   = (PageButtonsCountForwardValue == -1) ? TotalPagesValue : Math.Min(TotalPagesValue, CurrentPageValue + PageButtonsCountForwardValue);

            using (Paginator.BeginContent(writer, context))
            {
                if (!HidePreviousNextButtonsValue)
                {
                    var p  = Math.Max(1, CurrentPageValue - 1);
                    var pi = new PaginatorItem()
                    {
                        DisabledValue = (p == CurrentPageValue),
                        HrefValue     = string.Format(HrefTemplateValue, p)
                    };
                    pi.AddContent(ButtonPreviousTextValue);
                    pi.WriteTo(writer, context);
                }
                for (var i = pageStart; i <= pageEnd; i++)
                {
                    var pi = new PaginatorItem()
                    {
                        ActiveValue = (i == CurrentPageValue),
                        HrefValue   = string.Format(HrefTemplateValue, i)
                    };
                    pi.AddContent(string.Format(ButtonPageTextTemplateValue, i));
                    pi.WriteTo(writer, context);
                }
                if (!HidePreviousNextButtonsValue)
                {
                    var p  = Math.Min(TotalPagesValue, CurrentPageValue + 1);
                    var pi = new PaginatorItem()
                    {
                        DisabledValue = (p == CurrentPageValue),
                        HrefValue     = string.Format(HrefTemplateValue, p)
                    };
                    pi.AddContent(ButtonNextTextValue);
                    pi.WriteTo(writer, context);
                }
            }
        }
Ejemplo n.º 2
0
        protected override void WriteSelf(System.IO.TextWriter writer)
        {
            if (CurrentPage < 1)
            {
                throw new ArgumentOutOfRangeException("CurrentPage must be 1 or greater");
            }
            if (TotalPages < 1)
            {
                throw new ArgumentOutOfRangeException("TotalPages must be 1 or greater");
            }
            if (CurrentPage > TotalPages)
            {
                throw new ArgumentOutOfRangeException(string.Format("CurrentPage ({0}) must be less or equal to TotalPages ({1})", CurrentPage, TotalPages));
            }

            var pageStart = (PageButtonsCountBack == -1) ? 1 : Math.Max(1, CurrentPage - PageButtonsCountBack);
            var pageEnd   = (PageButtonsCountForward == -1) ? TotalPages : Math.Min(TotalPages, CurrentPage + PageButtonsCountForward);

            using (Paginator.BeginContent(writer, null))
            {
                if (!HidePreviousNextButtons)
                {
                    var p  = Math.Max(1, CurrentPage - 1);
                    var pi = Helper.CreateWriter <PaginatorItem, AnyContent>(this)
                             .Disabled(p == CurrentPage)
                             .Href(string.Format(HrefTemplate, p))
                             .Content(ButtonPreviousText);
                    pi.Item.WriteTo(writer);
                }
                for (var i = pageStart; i <= pageEnd; i++)
                {
                    var pi = Helper.CreateWriter <PaginatorItem, AnyContent>(this)
                             .Active(i == CurrentPage)
                             .Href(string.Format(HrefTemplate, i))
                             .Content(string.Format(ButtonPageTextTemplate, i));
                    pi.Item.WriteTo(writer);
                }
                if (!HidePreviousNextButtons)
                {
                    var p  = Math.Min(TotalPages, CurrentPage + 1);
                    var pi = Helper.CreateWriter <PaginatorItem, AnyContent>(this)
                             .Disabled(p == CurrentPage)
                             .Href(string.Format(HrefTemplate, p))
                             .Content(ButtonNextText);
                    pi.Item.WriteTo(writer);
                }
            }
        }