예제 #1
0
 /// <summary>
 /// 生成ajax的分页
 /// </summary>
 /// <param name="recordCount"></param>
 /// <param name="pageIndex"></param>
 /// <param name="PageSize"></param>
 /// <param name="settings"></param>
 /// <returns></returns>
 public static MvcHtmlString AjaxPager(int recordCount, int pageIndex, int PageSize, PagerSettings settings)
 {
     PagerBuilder pb = new PagerBuilder();
     settings.HideGoToButton = true;
     settings.HtmlRequestContext = null;
     return pb.Build(recordCount, pageIndex, PageSize, settings, (context, reques, pageindex) => "javascript:page(" + pageindex + ");");
 }
예제 #2
0
        protected void SetUp(String param)
        {
            _pagerBuilder  = new PagerBuilder();
            _privateObject = new PrivateObject(_pagerBuilder);
            var bag = new StateBag();

            bag.Add("_pageSizes", pageSizes);
            _shims = ShimsContext.Create();
            ShimPagerBuilder.AllInstances.RecordCountGet        = (x) => 0;
            ShimPagedControl.AllInstances.NavigationTemplateGet = (x) => navigation;
            ShimControl.AllInstances.ViewStateGet         = (x) => bag;
            ShimPagerBuilder.AllInstances.CurrentIndexGet = (x) => 1;
            if (param.Equals("x"))
            {
                ShimPagerBuilder.AllInstances.CurrentPageGet = (x) => 0;
            }
            else if (param.Equals("y"))
            {
                ShimPagerBuilder.AllInstances.CurrentPageGet = (x) => 5;
            }

            ShimPagerBuilder.AllInstances.PageCountGet           = (x) => 11;
            ShimPagerBuilder.AllInstances.CurrentGroupGet        = (x) => 2;
            ShimPagerBuilder.AllInstances.RecordCountGet         = (x) => 1;
            ShimPagerBuilder.AllInstances.PageSizeGet            = (x) => 0;
            ShimPagedControl.AllInstances.PageSelectorEnabledGet = (x) => true;
        }
        private void InitializeControls(
            groupsubscribe groupSubscribe,
            string[] textBoxNames,
            DataGrid smartGrid,
            PagerBuilder pagerBuilder,
            Button refreshButton,
            Button optinHtmlSave,
            PlaceHolder errorPlaceholder,
            Label errorMessageLaber)
        {
            SetTextBoxFields(groupSubscribe, textBoxNames, new TextBox()
            {
                Text = DummyText
            });

            ReflectionHelper.SetField(groupSubscribe, SoOptinFieldSelectionListBoxName, new ListBox());
            ReflectionHelper.SetField(groupSubscribe, SoHTMLCodeControlName, new CKEditorControl());

            ReflectionHelper.SetField(groupSubscribe, SmartFormGridControlName, smartGrid);
            ReflectionHelper.SetField(groupSubscribe, GridPagerControlName, pagerBuilder);

            ReflectionHelper.SetField(groupSubscribe, SoRefreshHTMLControlName, refreshButton);
            ReflectionHelper.SetField(groupSubscribe, SoOptinHTMLSaveControlName, optinHtmlSave);

            ReflectionHelper.SetField(groupSubscribe, ErrorPlaceHolderControlName, errorPlaceholder);

            ReflectionHelper.SetField(groupSubscribe, ErrorMessageLabelControlName, errorMessageLaber);
        }
예제 #4
0
        public static MvcHtmlString Pager(this AjaxHelper ajax, int totalItemCount, int pageSize, int pageIndex, string actionName, string controllerName,
                                          string routeName, PagerOptions pagerOptions, RouteValueDictionary routeValues, AjaxOptions ajaxOptions, IDictionary <string, object> htmlAttributes)
        {
            var totalPageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize);
            var builder        = new PagerBuilder(ajax, actionName, controllerName, totalPageCount, pageIndex, totalItemCount, pagerOptions,
                                                  routeName, routeValues, ajaxOptions, htmlAttributes);

            return(builder.RenderPager());
        }
예제 #5
0
        public static MvcHtmlString AjaxPager(this HtmlHelper html, int totalItemCount, int pageSize, int pageIndex, string actionName, string controllerName,
			string routeName, PagerOptions pagerOptions, RouteValueDictionary routeValues, IDictionary<string, object> htmlAttributes)
        {
            if (pagerOptions == null)
                pagerOptions = new PagerOptions();

            var totalPageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize);
            var builder = new PagerBuilder(html, actionName, controllerName, totalPageCount, pageIndex, pagerOptions, routeName, routeValues, htmlAttributes);
            return builder.RenderPager();
        }
예제 #6
0
        public static MvcHtmlString AjaxPager(this HtmlHelper html, int totalItemCount, int pageSize, int pageIndex, string actionName, string controllerName,
            string routeName, PagerOptions pagerOptions, object routeValues, AjaxOptions ajaxOptions, object htmlAttributes)
        {
            if(pagerOptions == null)
                pagerOptions = new PagerOptions();
            pagerOptions.UseJqueryAjax = true;

            var totalPageCount = (int) Math.Ceiling(totalItemCount/(double) pageSize);
            var builder = new PagerBuilder(html, actionName, controllerName, totalPageCount, pageIndex, totalItemCount, pagerOptions,
                routeName, new RouteValueDictionary(routeValues), ajaxOptions, new RouteValueDictionary(htmlAttributes));
            return builder.RenderPager();
        }
예제 #7
0
        public static MvcHtmlString AjaxPager(this HtmlHelper html, int totalItemCount, int pageSize, int pageIndex, string actionName, string controllerName,
                                              string routeName, PagerOptions pagerOptions, RouteValueDictionary routeValues, AjaxOptions ajaxOptions, IDictionary <string, object> htmlAttributes)
        {
            if (pagerOptions == null)
            {
                pagerOptions = new PagerOptions();
            }
            pagerOptions.UseJqueryAjax = true;

            var totalPageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize);
            var builder        = new PagerBuilder(html, actionName, controllerName, totalPageCount, pageIndex, totalItemCount, pagerOptions,
                                                  routeName, routeValues, ajaxOptions, htmlAttributes);

            return(builder.RenderPager());
        }
예제 #8
0
 public static MvcHtmlString Pager(this HtmlHelper helper, int TotalCount, int pageSize, int pageIndex, string actionName, string controllerName,
     PagerOptions pagerOptions, string routeName, object routeValues, object htmlAttributes)
 {
     var totalPageCount = (int)Math.Ceiling(TotalCount / (double)pageSize);
     var builder = new PagerBuilder
         (
             helper,
             actionName,
             controllerName,
             totalPageCount,
             pageIndex,
             pagerOptions,
             routeName,
             new RouteValueDictionary(routeValues),
             new RouteValueDictionary(htmlAttributes)
         );
     return builder.RenderPager();
 }
예제 #9
0
        public static MvcHtmlString Pager(this HtmlHelper helper, int totalItemCount, int pageSize, int pageIndex, string actionName, string controllerName,
                                          PagerOptions pagerOptions, string routeName, object routeValues, object htmlAttributes)
        {
            var totalPageCount = (int)Math.Ceiling(totalItemCount / (double)pageSize);
            var builder        = new PagerBuilder
                                 (
                helper,
                actionName,
                controllerName,
                totalPageCount,
                pageIndex,
                totalItemCount,
                pagerOptions,
                routeName,
                new RouteValueDictionary(routeValues),
                new RouteValueDictionary(htmlAttributes)
                                 );

            return(builder.RenderPager());
        }
예제 #10
0
        /// <summary>
        /// SimplePager extension for HtmlHelper
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="currentPage"></param>
        /// <param name="pageCount"></param>
        /// <param name="urlTemplate"></param>
        /// <param name="pagerClass"></param>
        /// <returns></returns>
        public static IHtmlString SimplePager(this HtmlHelper helper,
            int currentPage, int pageCount, string urlTemplate,
            string pagerClass)
        {
            if (currentPage < 0) currentPage = 1;
            if (pageCount < 0) pageCount = 0;

            var pager = new PagerBuilder(urlTemplate) {PagerClass = pagerClass};

            if (currentPage > 1)
            {
                pager.AddPage("&lt;&lt;", 1, "enabled", true);
                pager.AddPage("&lt;", 1, "enabled", true);
            }
            else
            {
                pager.AddPage("&lt;&lt;", 1, "disabled", false);
                pager.AddPage("&lt;", 1, "disabled", false);
            }

            var start = Math.Max(currentPage - 2, 1);
            var end = Math.Min(pageCount, currentPage + 2);

            for (var i = start; i <= end; i++)
            {
                pager.AddPage(i.ToString(), i, i == currentPage ? "current" : "enabled", true);
            }

            if (currentPage < pageCount)
            {
                pager.AddPage("&gt;", currentPage + 1, "enabled", true);
                pager.AddPage("&gt;&gt;", pageCount, "enabled", true);
            }
            else
            {
                pager.AddPage("&gt;", currentPage + 1, "disabled", false);
                pager.AddPage("&gt;&gt;", pageCount, "disabled", false);
            }
            return new HtmlString(pager.ToString());
        }
예제 #11
0
        public override string ToString()
        {
            int _pagePrePostLinks;

            // fix number of pages to show
            if (_pageLinks < 5)
            {
                _pageLinks = 5;
            }
            if (_pageLinks % 2 == 0)
            {
                _pageLinks += 1;
            }
            _pagePrePostLinks = (_pageLinks - 1) / 2;

            if (currentPage < 0) currentPage = 1;
            if (pageCount < 0) pageCount = 0;

            var pager = new PagerBuilder(urlTemplate);
            pager.PagerClass = cssClass;
            pager.CurrentPage = currentPage;

            int start;
            int end;

            if (currentPage < _pageLinks)
            {
                start = 1;
                end = _pageLinks;
            }
            else if (currentPage > pageCount - _pageLinks + 1)
            {
                start = pageCount - _pageLinks + 1;
                end = pageCount;
            }
            else
            {
                start = currentPage - _pagePrePostLinks;
                end = currentPage + _pagePrePostLinks;
            }

            if (currentPage > 1)
            {
                pager.AddPage(_prev, currentPage - 1, @"page-numbers prev");

                if (start > 1)
                {
                    pager.AddPage("1", 1, @"page-numbers");
                    if (start > 2)
                    {
                        pager.AddPage(_dots, -1, @"page-numbers dots");
                    }
                }
            }

            for (var i = start; i <= end; i++)
            {
                if (i == currentPage)
                    pager.AddPage(i.ToString(), i, @"page-numbers current");
                else
                    pager.AddPage(i.ToString(), i, @"page-numbers");
            }

            if (currentPage < pageCount)
            {
                if (end < pageCount)
                {
                    if (end < pageCount - 1)
                    {
                        pager.AddPage(_dots, -1, @"page-numbers dots");
                    }
                    pager.AddPage(pageCount.ToString(), pageCount, @"page-numbers");
                }
                pager.AddPage(_next, currentPage + 1, @"page-numbers next");
            }

            return pager.ToString();
        }
예제 #12
0
 /// <summary>
 /// 生成分页代码
 /// </summary>
 /// <param name="helper"></param>
 /// <param name="recordCount">总页数</param>
 /// <param name="pageIndex">当前页</param>
 /// <param name="PageSize">页大小</param>
 /// <param name="settings">设置项</param>
 /// <returns></returns>
 public static MvcHtmlString Pager(this HtmlHelper helper, int recordCount, int pageIndex, int PageSize, PagerSettings settings)
 {
     PagerBuilder pb = new PagerBuilder();
     settings.HtmlRequestContext = helper.ViewContext.RequestContext;
     return pb.Build(recordCount, pageIndex, PageSize, settings);
 }
        public void SaveOptinHTMLClick_ECNException_CallsSmartFormsHistorySave()
        {
            // Arrange
            var masterCommunicator = CreateMasterCommunicator();

            var smartFormsHistory = CreateSmartFormsHistory();

            smartFormsHistory.Setup(x => x.GetBySmartFormID(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <User>()))
            .Throws(new ECNException(new List <ECNError>()));

            var request = new Mock <IRequest>();

            request.Setup(x => x.GetQueryStringValue(It.IsAny <string>())).Returns(string.Empty);

            var groupSubscribe = new groupsubscribe(masterCommunicator.Object, smartFormsHistory.Object, request.Object);

            var textBoxNames = new string[]
            {
                SmartFormNameTextBoxName,
                ResponseUserMsgSubjectTextBoxName,
                ResponseUserScreenTextBoxName,
                ResponseFromEmailTextBoxName,
                ResponseAdminEmailTextBoxName,
                ResponseAdminMsgSubjectTextBoxName,
                ResponseAdminMsgBodyTextBoxName,
                ResponseUserMsgBodyTextBoxName
            };
            var smartGrid    = new DataGrid();
            var pagerBuilder = new PagerBuilder()
            {
                RecordCount = ValueNegativeOne
            };
            var refreshButton = new Button()
            {
                Visible = true
            };
            var optinHtmlSave = new Button()
            {
                Visible = true
            };
            var errorPlaceholder = new PlaceHolder()
            {
                Visible = false
            };
            var errorMessageLaber = new Label()
            {
                Text = DummyText
            };

            InitializeControls(groupSubscribe, textBoxNames, smartGrid, pagerBuilder, refreshButton, optinHtmlSave, errorPlaceholder, errorMessageLaber);

            ReflectionHelper.SetField(groupSubscribe, SoSmartFormButtonName, new Button {
                Enabled = false
            });
            ReflectionHelper.SetField(groupSubscribe, DoSmartFormButtonName, new Button {
                Enabled = true
            });
            var htmlSaveNewButton = new Button()
            {
                Text = DummyText
            };

            ReflectionHelper.SetField(groupSubscribe, SoOptinHTMLSaveNewControlName, htmlSaveNewButton);

            // Act
            typeof(groupsubscribe)
            .CallMethod(
                "SaveOptinHTML_Click",
                new object[]
            {
                null,
                null
            },
                groupSubscribe);

            // Assert
            smartFormsHistory.Verify(x => x.Save(It.IsAny <SmartFormsHistory>(), It.IsAny <User>()), Times.Never());
            smartFormsHistory.Verify(x => x.GetByGroupID(It.IsAny <int>(), It.IsAny <User>()), Times.Once());
            smartFormsHistory.Verify(x => x.GetBySmartFormID(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <User>()), Times.Once());

            Assert.That(refreshButton.Enabled, Is.False);
            Assert.That(optinHtmlSave.Enabled, Is.False);
            Assert.That(smartGrid.DataSource, Is.InstanceOf(typeof(IList)));
            var dataSource = smartGrid.DataSource as IList;

            Assert.That(dataSource, Is.Not.Null);
            Assert.That(dataSource.Count, Is.EqualTo(ValueZero));
            Assert.That(pagerBuilder.RecordCount, Is.EqualTo(ValueZero));
            AssertTextBoxs(groupSubscribe, textBoxNames, Is.Empty);

            Assert.That(errorPlaceholder.Visible, Is.True);
            Assert.That(errorMessageLaber.Text, Is.Empty);

            Assert.That(htmlSaveNewButton.Text, Is.EqualTo(CreateNewSmartForm));
        }
        public void SoOptinHTMLSaveNewClick_ECNException_CallsSmartFormsHistorySave()
        {
            // Arrange
            var masterCommunicator = CreateMasterCommunicator();
            var smartFormsHistory  = CreateSmartFormsHistory();

            smartFormsHistory.Setup(x => x.Save(It.IsAny <SmartFormsHistory>(), It.IsAny <User>()))
            .Throws(new ECNException(new List <ECNError>()));

            var request        = CreateRequest();
            var groupSubscribe = new groupsubscribe(masterCommunicator.Object, smartFormsHistory.Object, request.Object);

            var textBoxNames = new string[]
            {
                SmartFormNameTextBoxName,
                ResponseUserMsgSubjectTextBoxName,
                ResponseUserScreenTextBoxName,
                ResponseFromEmailTextBoxName,
                ResponseAdminEmailTextBoxName,
                ResponseAdminMsgSubjectTextBoxName,
                ResponseAdminMsgBodyTextBoxName,
                ResponseUserMsgBodyTextBoxName
            };
            var smartGrid    = new DataGrid();
            var pagerBuilder = new PagerBuilder()
            {
                RecordCount = ValueNegativeOne
            };
            var refreshButton = new Button()
            {
                Visible = true
            };
            var optinHtmlSave = new Button()
            {
                Visible = true
            };
            var errorPlaceholder = new PlaceHolder()
            {
                Visible = false
            };
            var errorMessageLaber = new Label()
            {
                Text = DummyText
            };

            InitializeControls(groupSubscribe, textBoxNames, smartGrid, pagerBuilder, refreshButton, optinHtmlSave, errorPlaceholder, errorMessageLaber);

            // Act
            typeof(groupsubscribe)
            .CallMethod(
                "SO_OptinHTMLSaveNew_Click",
                new object[]
            {
                null,
                null
            },
                groupSubscribe);

            // Assert
            smartFormsHistory.Verify(x => x.Save(It.IsAny <SmartFormsHistory>(), It.IsAny <User>()), Times.Once());
            smartFormsHistory.Verify(x => x.GetByGroupID(It.IsAny <int>(), It.IsAny <User>()), Times.Never());

            Assert.That(refreshButton.Enabled, Is.True);
            Assert.That(optinHtmlSave.Enabled, Is.True);
            Assert.That(smartGrid.DataSource, Is.Null);
            Assert.That(pagerBuilder.RecordCount, Is.EqualTo(ValueNegativeOne));
            AssertTextBoxs(groupSubscribe, textBoxNames, Is.EqualTo(DummyText));

            Assert.That(errorPlaceholder.Visible, Is.True);
            Assert.That(errorMessageLaber.Text, Is.Empty);
        }
예제 #15
0
            public NextControl(PagerBuilder builder)
            {
                _builder = builder;

            }
예제 #16
0
 public PrevControl(PagerBuilder builder)
 {
     _builder = builder;
 }
예제 #17
0
        public HtmlString Pager(string actioName, string controllerName, object routeValues, int page, int pageSize, int totalItems, Action <IPagerBuilder> options = null)
        {
            var pagerOptions = new PagerBuilder();

            options?.Invoke(pagerOptions);

            var rootUlElement = new TagBuilder("ul");

            rootUlElement.AddCssClass("pagination");

            var howMuchPagesPerPager = 5;

            var urlHelper = new UrlHelper(this.htmlHelper.ViewContext);

            var mergedRouteValues = new RouteValueDictionary(routeValues ?? new {});

            foreach (var mergedRouteValue in mergedRouteValues.ToList())
            {
                if (mergedRouteValue.Key.ToLowerInvariant() == "page")
                {
                    mergedRouteValues.Remove(mergedRouteValue.Key);
                }
            }

            foreach (
                var additionalRoute in pagerOptions.AdditionalRoutes ?? Enumerable.Empty <KeyValuePair <string, Object> >()
                )
            {
                if (additionalRoute.Key.ToLowerInvariant() == "page")
                {
                    continue;
                }

                mergedRouteValues.Add(additionalRoute.Key, additionalRoute.Value);
            }


            Func <int, string> buildUrlForPage = pageNo =>
            {
                var finalRoute = new RouteValueDictionary(mergedRouteValues)
                {
                    { "page", pageNo }
                };

                return(urlHelper.Action(new UrlActionContext
                {
                    Action = actioName,
                    Controller = controllerName,
                    Values = finalRoute
                }));
            };

            var totalPages = totalItems / pageSize + 1;

            if (page > totalPages)
            {
                page = totalPages;
            }
            if (page < 1)
            {
                page = 1;
            }
            var pagesToProcess = new LinkedList <int>();


            var firstPage = Math.Max(page - howMuchPagesPerPager / 2, 1);

            for (var i = firstPage; i < page; i++)
            {
                pagesToProcess.AddLast(i);
            }

            pagesToProcess.AddFirst(page);

            var lastPage = Math.Min(totalPages, page + howMuchPagesPerPager / 2);

            for (var i = page + 1; i < lastPage; i++)
            {
                pagesToProcess.AddLast(i);
            }

            while (pagesToProcess.Count < howMuchPagesPerPager && lastPage < totalPages)
            {
                lastPage += 1;
                pagesToProcess.AddLast(lastPage);
            }

            while (pagesToProcess.Count < howMuchPagesPerPager && firstPage > 1)
            {
                lastPage -= 1;
                pagesToProcess.AddFirst(lastPage);
            }

            var prevButton = new TagBuilder("li");

            prevButton.AddCssClass("paginate_button");
            prevButton.AddCssClass("previous");
            var aPrevButton = new TagBuilder("a");

            aPrevButton.InnerHtml.SetContent("Previous");
            if (page > 1)
            {
                aPrevButton.Attributes["href"] = buildUrlForPage(page - 1);
            }
            else
            {
                prevButton.AddCssClass("disabled");
            }

            prevButton.InnerHtml.SetHtmlContent(aPrevButton);
            rootUlElement.InnerHtml.AppendHtml(prevButton);


            foreach (var pageToProcess in pagesToProcess)
            {
                var li = new TagBuilder("li");
                li.AddCssClass("paginate_button");
                if (pageToProcess == page)
                {
                    li.AddCssClass("active");
                }

                var a = new TagBuilder("a");
                a.Attributes["href"] = buildUrlForPage(pageToProcess);
                a.InnerHtml.SetContent(pageToProcess.ToString("D"));

                li.InnerHtml.SetHtmlContent(a);

                rootUlElement.InnerHtml.AppendHtml(li);
            }


            var nextButton = new TagBuilder("li");

            nextButton.AddCssClass("paginate_button");
            nextButton.AddCssClass("next");
            var aNextButton = new TagBuilder("a");

            aNextButton.InnerHtml.SetContent("Previous");
            if (page < totalPages)
            {
                aNextButton.Attributes["href"] = buildUrlForPage(page - 1);
            }
            else
            {
                nextButton.AddCssClass("disabled");
            }

            nextButton.InnerHtml.SetHtmlContent(aNextButton);
            rootUlElement.InnerHtml.AppendHtml(nextButton);


            return(new HtmlString(rootUlElement.ToString()));
        }
예제 #18
0
        /// <summary>
        /// Generates HTML for blog pager
        /// </summary>
        /// <param name="helper">HtmlHelper instance</param>
        /// <param name="totalPages">Total pages of blog</param>
        /// <param name="currentPage">Current page</param>
        /// <param name="pagerSize">Pager size (default is 5)</param>
        /// <returns></returns>
        public static MvcHtmlString Pager(this HtmlHelper helper, string url, int totalPages, int currentPage, int pagerSize = 5)
        {
            var pageBuilder = new PagerBuilder(HttpUtility.UrlDecode(url), totalPages, currentPage, pagerSize);

            return pageBuilder.ToMvcHtmlString();
        }
예제 #19
0
 public static MvcHtmlString Pager(this AjaxHelper ajax, int totalItemCount, int pageSize, int pageIndex, string actionName, string controllerName, string routeName, PagerOptions pagerOptions, RouteValueDictionary routeValues, AjaxOptions ajaxOptions, IDictionary<string, object> htmlAttributes)
 {
     int totalPageCount = (int)Math.Ceiling((double)(((double)totalItemCount) / ((double)pageSize)));
     PagerBuilder builder = new PagerBuilder(ajax, actionName, controllerName, totalPageCount, pageIndex, pagerOptions, routeName, routeValues, ajaxOptions, htmlAttributes);
     return builder.RenderPager();
 }
예제 #20
0
        public override string ToString()
        {
            int _pagePrePostLinks;

            // fix number of pages to show
            if (_pageLinks < 5)
            {
                _pageLinks = 5;
            }
            if (_pageLinks % 2 == 0)
            {
                _pageLinks += 1;
            }
            _pagePrePostLinks = (_pageLinks - 1) / 2;



            if (currentPage < 0)
            {
                currentPage = 1;
            }
            if (pageCount < 0)
            {
                pageCount = 0;
            }

            var pager = new PagerBuilder(urlTemplate);

            pager.PagerClass  = cssClass;
            pager.CurrentPage = currentPage;

            int start;
            int end;

            if (currentPage < _pageLinks)
            {
                start = 1;
                end   = _pageLinks;
            }
            else if (currentPage > pageCount - _pageLinks + 1)
            {
                start = pageCount - _pageLinks + 1;
                end   = pageCount;
            }
            else
            {
                start = currentPage - _pagePrePostLinks;
                end   = currentPage + _pagePrePostLinks;
            }

            if (currentPage > 1)
            {
                pager.AddPage(_prev, currentPage - 1, @"page-numbers prev");

                if (start > 1)
                {
                    pager.AddPage("1", 1, @"page-numbers");
                    if (start > 2)
                    {
                        pager.AddPage(_dots, -1, @"page-numbers dots");
                    }
                }
            }


            for (var i = start; i <= end; i++)
            {
                if (i == currentPage)
                {
                    pager.AddPage(i.ToString(), i, @"page-numbers current");
                }
                else
                {
                    pager.AddPage(i.ToString(), i, @"page-numbers");
                }
            }

            if (currentPage < pageCount)
            {
                if (end < pageCount)
                {
                    if (end < pageCount - 1)
                    {
                        pager.AddPage(_dots, -1, @"page-numbers dots");
                    }
                    pager.AddPage(pageCount.ToString(), pageCount, @"page-numbers");
                }
                pager.AddPage(_next, currentPage + 1, @"page-numbers next");
            }

            return(pager.ToString());
        }
예제 #21
0
 public Page(PagerBuilder builder, int index, bool current)
 {
     _index = index;
     _current = current;
     _builder = builder;
 }
        private void PopulateUsers()
        {
            try
            {
                int startPage = !String.IsNullOrEmpty(Request.QueryString[WebConstant.QueryString.PagerQueryString])
                    ? TypeConversionUtility.ToInteger(Request.QueryString[WebConstant.QueryString.PagerQueryString])
                    : 1;
                int pageLength =
                    !String.IsNullOrEmpty(Request.QueryString[WebConstant.QueryString.PageLengthQueryString])
                        ? TypeConversionUtility.ToInteger(
                        Request.QueryString[WebConstant.QueryString.PageLengthQueryString])
                        : WebConstant.PageLength;

                int noOfPages    = 0;
                int totalRecords = 0;
                var users        = UserRepository.UserListPaged(null, startPage, pageLength, out noOfPages, out totalRecords);
                rptList.DataSource = users;
                rptList.DataBind();

                #region "Paging"
                litPageState.Text = "Showing " + startPage + " of " + noOfPages + " (out of " + totalRecords + " items)";
                if (totalRecords > users.Count)
                {
                    ArgosPager argosPager = new ArgosPager();

                    argosPager.OutputFirstAndLastLinks = true;
                    argosPager.OutputPageStats         = false;
                    argosPager.OutputPageJumper        = false;
                    argosPager.EnableGoToPage          = false;
                    argosPager.OutputNextPrevLinks     = true;
                    argosPager.NavigateNextText        = ">";
                    argosPager.NavigatePreviousText    = "<";
                    PagerBuilder.BuildPager(startPage, pageLength, noOfPages, totalRecords, false, litPager,
                                            WebConstant.PagerTextBoxId, WebConstant.QueryString.PagerQueryString, argosPager);

                    // Binding Paging Css on Pager Literal Control
                    string str = litPager.Text;
                    str           = str.Replace("&nbsp;", "");
                    litPager.Text = str;
                    if (startPage != noOfPages)
                    {
                        int i = noOfPages / startPage;
                        if (i > 0 && startPage != 1)
                        {
                            IsLast = 2;
                        }
                        else
                        {
                            IsLast = 0;
                        }
                    }
                    else
                    {
                        IsLast = 1;
                    }
                }
                else
                {
                    litPager.Text = "";
                }
                #endregion
            }
            catch (Exception ex)
            {
                lblMsg.Text    = string.Format("<p class=\"error\">{0}</p>", ex);
                pnlMsg.Visible = true;
            }
        }