/// <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 + ");"); }
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); }
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()); }
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(); }
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(); }
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()); }
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(); }
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()); }
/// <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("<<", 1, "enabled", true); pager.AddPage("<", 1, "enabled", true); } else { pager.AddPage("<<", 1, "disabled", false); pager.AddPage("<", 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(">", currentPage + 1, "enabled", true); pager.AddPage(">>", pageCount, "enabled", true); } else { pager.AddPage(">", currentPage + 1, "disabled", false); pager.AddPage(">>", pageCount, "disabled", false); } return new HtmlString(pager.ToString()); }
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(); }
/// <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); }
public NextControl(PagerBuilder builder) { _builder = builder; }
public PrevControl(PagerBuilder builder) { _builder = builder; }
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())); }
/// <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(); }
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(); }
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()); }
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(" ", ""); 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; } }