public static List <Template> GetData(BlogSystemContext dataBaseContext, PageInfoViewModel pageInfo, string searchMessage) { var efHelper = new EFHelper(dataBaseContext); IQueryable <Template> q = dataBaseContext.Templates; // 表单搜索 var searchText = searchMessage?.Trim(); if (!string.IsNullOrEmpty(searchText)) { q = q.Where(o => o.Name.Contains(searchText)); } if (pageInfo == null) { return(q.ToList()); } // 在添加条件之后,排序和分页之前获取总记录数 pageInfo.RecordCount = q.Count(); // 排列和数据库分页 q = efHelper.SortAndPage(q, pageInfo); return(q.ToList()); }
private static void CreatePageLink(int i, PageInfoViewModel pageInfoViewModel, ref Func <int, string, string> pageUrl, ref StringBuilder result, string buttonType) { TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("data-ajax", "true"); tag.MergeAttribute("href", pageUrl(i, pageInfoViewModel.SearchItem)); tag.MergeAttribute("data-ajax-mode", "replace"); tag.MergeAttribute("data-ajax-update", "#results"); if (buttonType == "default") { tag.SetInnerText(i.ToString()); tag.AddCssClass("btn btn-default"); } if (buttonType == "info") { tag.InnerHtml = i.ToString(); tag.AddCssClass("btn btn-info"); tag.AddCssClass("selected"); } if (buttonType == "primary") { if (i == 1) { tag.InnerHtml = "<<"; } else { tag.InnerHtml = ">>"; } tag.AddCssClass("btn btn-primary"); } result.Append(tag); }
public static MvcHtmlString PageLinks(this HtmlHelper html, PageInfoViewModel pageInfoViewModel, Func <int, string, string> pageUrl) { StringBuilder result = new StringBuilder(); if (pageInfoViewModel.PageNumber > 2) { CreatePageLink(pageInfoViewModel.PageNumber - 2, pageInfoViewModel, ref pageUrl, ref result, "default"); } if (pageInfoViewModel.PageNumber != 1) { CreatePageLink(pageInfoViewModel.PageNumber - 1, pageInfoViewModel, ref pageUrl, ref result, "default"); } CreatePageLink(pageInfoViewModel.PageNumber, pageInfoViewModel, ref pageUrl, ref result, "info"); if (pageInfoViewModel.PageNumber != pageInfoViewModel.TotalPages) { CreatePageLink(pageInfoViewModel.PageNumber + 1, pageInfoViewModel, ref pageUrl, ref result, "default"); } if (pageInfoViewModel.PageNumber < pageInfoViewModel.TotalPages - 1) { CreatePageLink(pageInfoViewModel.PageNumber + 2, pageInfoViewModel, ref pageUrl, ref result, "default"); } return(MvcHtmlString.Create(result.ToString())); }
public static MvcHtmlString PagedListPager(this HtmlHelper html, PageInfoViewModel pageInfo) { StringBuilder result = new StringBuilder(); TagBuilder div = new TagBuilder("div"); div.MergeAttribute("id", "contentPager"); div.AddCssClass("nav-pages"); int p = 1; if (pageInfo.PageNumber >= 5) { TagBuilder tag = new TagBuilder("button"); tag.SetInnerText("1"); tag.MergeAttribute("onclick", "submitFormByPage" + "(" + 1 + ")"); div.InnerHtml += tag; TagBuilder span = new TagBuilder("span"); span.AddCssClass(" mr-2"); span.InnerHtml = ("..."); div.InnerHtml += span; p = pageInfo.PageNumber - 3; } int to = pageInfo.TotalPages; bool lastBtn = false; if ((pageInfo.TotalPages - pageInfo.PageNumber) >= 4) { lastBtn = true; to = pageInfo.PageNumber + 3; } for (int i = p; i <= to; i++) { TagBuilder tag = new TagBuilder("button"); tag.SetInnerText(i.ToString()); if (i == pageInfo.PageNumber) { tag.AddCssClass("active"); } else { tag.MergeAttribute("onclick", "submitFormByPage" + "(" + i + ")"); } div.InnerHtml += tag; } if (lastBtn) { TagBuilder tag = new TagBuilder("button"); tag.SetInnerText(pageInfo.TotalPages.ToString()); tag.MergeAttribute("onclick", "submitFormByPage" + "(" + pageInfo.TotalPages + ")"); TagBuilder span = new TagBuilder("span"); span.AddCssClass(" mr-2"); span.InnerHtml = ("..."); div.InnerHtml += span; div.InnerHtml += tag; } result.Append(div.ToString()); return(MvcHtmlString.Create(result.ToString())); }
public static MvcHtmlString PageEndLink(this HtmlHelper html, PageInfoViewModel pageInfoViewModel, Func <int, string, string> pageUrl) { StringBuilder result = new StringBuilder(); CreatePageLink(pageInfoViewModel.TotalPages, pageInfoViewModel, ref pageUrl, ref result, "primary"); return(MvcHtmlString.Create(result.ToString())); }
public static List <Article> GetData(BlogSystemContext dataBaseContext, PageInfoViewModel pageInfo, string searchMessage, Guid?articleTypeGuid = null, Guid?articleLabelGuid = null, bool getArticleType = true, bool getArticleLabels = true, bool getText = true) { var efHelper = new EFHelper(dataBaseContext); IQueryable <Article> q; if (articleLabelGuid.HasValue) { q = dataBaseContext.ArticleLabelArticles.Where( o => o.ArticleLabelGuid == articleLabelGuid).Select(o => o.Article); } else { q = dataBaseContext.Articles; } IQueryable <ArticleLabelArticle> m = dataBaseContext.ArticleLabelArticles; m = m.Include(o => o.Article) .Include(o => o.ArticleLabel); q = q.Include(o => o.ArticleType); if (articleTypeGuid.HasValue) { var selectedArticleTypeGuids = ArticleType.GetVirtualTree(dataBaseContext, articleTypeGuid.Value); q = q.Join(selectedArticleTypeGuids, l => l.ArticleType, r => r, (l, r) => l); } // 表单搜索 var searchText = searchMessage?.Trim(); if (!string.IsNullOrEmpty(searchText)) { q = q.Where(o => o.Name.Contains(searchText)); } if (pageInfo != null) { // 在添加条件之后,排序和分页之前获取总记录数 pageInfo.RecordCount = q.Count(); // 排列和数据库分页 q = efHelper.SortAndPage(q, pageInfo); } var articles = q.ToList(); articles.ForEach(o => o.ArticleLabelArticles = m.Where(p => p.Article == o).ToList()); return(articles); }
public static MvcHtmlString FewPageLinks(this HtmlHelper html, PageInfoViewModel pageInfoViewModel, Func <int, string, string> pageUrl) { StringBuilder result = new StringBuilder(); for (int i = 1; i <= pageInfoViewModel.TotalPages; i++) { if (i == pageInfoViewModel.PageNumber) { CreatePageLink(i, pageInfoViewModel, ref pageUrl, ref result, "info"); } else { CreatePageLink(i, pageInfoViewModel, ref pageUrl, ref result, "default"); } } return(MvcHtmlString.Create(result.ToString())); }
public static MvcHtmlString PageLinks(this HtmlHelper html, PageInfoViewModel pageInfo, Func <int, string> pageUrl) { StringBuilder result = new StringBuilder(); for (int i = 1; i <= pageInfo.TotalPages; i++) { TagBuilder tag = new TagBuilder("a"); tag.MergeAttribute("href", pageUrl(i)); tag.InnerHtml = i.ToString(); if (i == pageInfo.PageNumber) { tag.AddCssClass("selected"); tag.AddCssClass("btn-primary"); } tag.AddCssClass("btn btn-default"); result.Append(tag.ToString()); } return(MvcHtmlString.Create(result.ToString())); }
public async Task <ServicesListViewModel> GetListAsync(ServicesSearchModel searchModel) { var pageInfo = new PageInfoViewModel(); pageInfo.PageNumber = searchModel.Page; pageInfo.PageSize = searchModel.ItemsPerPage; var getServices = context.Services.Where(x => x.IsApproved == searchModel.IsApproved); if (!String.IsNullOrWhiteSpace(searchModel.Search)) { getServices = getServices.Where(x => x.Name.Contains(searchModel.Search)); } if (searchModel.CategoryId != null) { getServices = getServices.Where(x => x.CategoryId == searchModel.CategoryId); } if (searchModel.SortAscending == true) { getServices = getServices.OrderBy(x => x.Name); } else { getServices = getServices.OrderByDescending(x => x.Name); } pageInfo.TotalItems = await getServices.CountAsync(); var dataModel = await getServices .Skip(pageInfo.SkipItems) .Take(pageInfo.PageSize) .Include(x => x.Category) .ToListAsync(); var viewModel = new ServicesListViewModel(); viewModel.Services = _mapper.Map <List <ServiceViewModel> >(dataModel); viewModel.PageInfo = pageInfo; return(viewModel); }
public ActionResult Display(int page = 1) { int pageSize = 15; IEnumerable <DrugUnitDTO> drugUnitsDto = drugUnitService.GetDrugUnits((page - 1) * pageSize, pageSize); PageInfoViewModel pageInfo = new PageInfoViewModel { PageNumber = page, PageSize = pageSize, TotalItems = drugUnitService.GetDrugUnitsCount() }; Mapper.Initialize(cfg => cfg.CreateMap <DrugUnitDTO, DrugUnitViewModel>()); var drugUnits = Mapper.Map <IEnumerable <DrugUnitDTO>, List <DrugUnitViewModel> >(drugUnitsDto); DrugUnitIndexViewModel drugUnitsIndex = new DrugUnitIndexViewModel { PageInfo = pageInfo, DrugUnits = drugUnits, DepotsList = drugUnitService.GetDepotsList() }; return(View(drugUnitsIndex)); }
public static List <ArticleType> GetData(BlogSystemContext dataBaseContext, PageInfoViewModel pageInfo, string searchMessage, out List <ArticleType> articleTypes) { articleTypes = GetVirtualTree(dataBaseContext); // 表单搜索 var searchText = searchMessage?.Trim(); var searchArticleTypes = !string.IsNullOrEmpty(searchText) ? articleTypes.Where(o => o.Name.Contains(searchText)).ToList() : articleTypes; if (pageInfo == null) { return(searchArticleTypes); } // 在添加条件之后,排序和分页之前获取总记录数 pageInfo.RecordCount = searchArticleTypes.Count(); // 排列和分页 searchArticleTypes = searchArticleTypes.Skip(pageInfo.PageIndex * pageInfo.PageSize) .Take(pageInfo.PageSize).ToList(); return(searchArticleTypes); }
public static MvcHtmlString PagedListPager(this HtmlHelper html, PageInfoViewModel pageInfo, string jsFunctionName) { StringBuilder result = new StringBuilder(); TagBuilder div = new TagBuilder("div"); div.MergeAttribute("id", "contentPager"); div.AddCssClass("page-container"); int p = 1; if (pageInfo.PageNumber >= 5) { TagBuilder tag = new TagBuilder("input"); tag.MergeAttribute("value", "1"); tag.MergeAttribute("type", "button"); tag.AddCssClass("btn"); tag.AddCssClass("btn-default"); tag.MergeAttribute("onclick", jsFunctionName + "(" + 1 + ")"); div.InnerHtml += tag; TagBuilder span = new TagBuilder("span"); span.AddCssClass(" mr-2"); span.InnerHtml = ("..."); div.InnerHtml += span; p = pageInfo.PageNumber - 3; } int to = pageInfo.TotalPages; bool lastBtn = false; if ((pageInfo.TotalPages - pageInfo.PageNumber) >= 4) { lastBtn = true; to = pageInfo.PageNumber + 3; } for (int i = p; i <= to; i++) { TagBuilder tag = new TagBuilder("input"); tag.MergeAttribute("type", "button"); tag.MergeAttribute("value", i.ToString()); tag.AddCssClass("btn"); if (i == pageInfo.PageNumber) { tag.AddCssClass("btn-currentpage"); } else { tag.AddCssClass("btn-default"); tag.MergeAttribute("onclick", jsFunctionName + "(" + i + ")"); } div.InnerHtml += tag; } if (lastBtn) { TagBuilder tag = new TagBuilder("input"); tag.MergeAttribute("value", pageInfo.TotalPages.ToString()); tag.MergeAttribute("type", "button"); tag.AddCssClass("btn"); tag.AddCssClass("btn-default"); tag.MergeAttribute("onclick", jsFunctionName + "(" + pageInfo.TotalPages + ")"); TagBuilder span = new TagBuilder("span"); span.AddCssClass(" mr-2"); span.InnerHtml = ("..."); div.InnerHtml += span; div.InnerHtml += tag; } result.Append(div.ToString()); return(MvcHtmlString.Create(result.ToString())); }