public void Fill(bool fillAnyway) { int itemsPerPage = ItemsPerPage; if (itemsPerPage <= 0) itemsPerPage = 20; ReportingCriteria criteria2 = new ReportingCriteria(); criteria2.FolderRecursive = true; criteria2.AddFilter(ReportingProperty.FolderId, CriteriaFilterOperator.EqualTo, FilterFolderId < 0 ? 0 : FilterFolderId); if (!string.IsNullOrEmpty(FilterTitle)) criteria2.AddFilter(ReportingProperty.Title, CriteriaFilterOperator.Contains, FilterTitle.Replace("&", "&").Replace("'", "'")); if (FilterLocale > 0) { if (!FilterLocaleNotIn) criteria2.AddFilter(ReportingProperty.Locale, CriteriaFilterOperator.Contains, "," + FilterLocale.ToString() + ","); else criteria2.AddFilter(ReportingProperty.Locale, CriteriaFilterOperator.DoesNotContain, "," + FilterLocale.ToString() + ","); } else if (FilterLocale == -1) { criteria2.AddFilter(ReportingProperty.Locale, CriteriaFilterOperator.EqualTo, string.Format(",{0},", CurrentLanguageId)); } if (FilterLocStatus != Ektron.Cms.Localization.LocalizationState.Undefined) criteria2.AddFilter(ReportingProperty.TranslationStatus, CriteriaFilterOperator.EqualTo, (byte)FilterLocStatus); if (!string.IsNullOrEmpty(FilterContentStatus)) criteria2.AddFilter(ReportingProperty.ContentStatus, CriteriaFilterOperator.EqualTo, FilterContentStatus); if (FilterLastModifiedStart != DateTime.MinValue) criteria2.AddFilter(ReportingProperty.LastModified, CriteriaFilterOperator.GreaterThanOrEqualTo, FilterLastModifiedStart); if (FilterLastModifiedEnd != DateTime.MinValue) criteria2.AddFilter(ReportingProperty.LastModified, CriteriaFilterOperator.LessThan, FilterLastModifiedEnd); if (FilterDateCreatedStart != DateTime.MinValue) criteria2.AddFilter(ReportingProperty.DateCreated, CriteriaFilterOperator.GreaterThanOrEqualTo, FilterDateCreatedStart); if (FilterDateCreatedEnd != DateTime.MinValue) criteria2.AddFilter(ReportingProperty.DateCreated, CriteriaFilterOperator.LessThan, FilterDateCreatedEnd); if (FilterContentId > -1) criteria2.AddFilter(ReportingProperty.ContentId, CriteriaFilterOperator.EqualTo, FilterContentId); if (FilterAuthorId > 0) criteria2.AddFilter(ReportingProperty.AuthorId, CriteriaFilterOperator.EqualTo, FilterAuthorId); if (FilterLanguageId > 0) criteria2.AddFilter(ReportingProperty.LanguageId, CriteriaFilterOperator.EqualTo, FilterLanguageId); criteria2.GetMetadata = true; criteria2.PagingInfo.CurrentPage = CurrentPage; criteria2.PagingInfo.RecordsPerPage = itemsPerPage; criteria2.OrderByField = SortBy; criteria2.OrderByDirection = SortOrder; List<ReportingData> contentlist2 = l10nManager.GetReport(criteria2); int pageCount = 0; int totalCount = criteria2.PagingInfo.TotalRecords; int totalPages = criteria2.PagingInfo.TotalPages; int currentPage = criteria2.PagingInfo.CurrentPage; int startIndex = (criteria2.PagingInfo.CurrentPage - 1) * criteria2.PagingInfo.RecordsPerPage + 1; if (contentlist2 != null) { pageCount = contentlist2.Count; } int endIndex = startIndex + pageCount - 1; lResultCount.Text = lResultCount2.Text = pageCount == 0 ? "No results" : ("Showing result" + (pageCount > 1 ? ("s " + startIndex.ToString() + " - " + endIndex.ToString()) : (" " + startIndex.ToString())) + " of " + totalCount.ToString()); string paging = string.Empty; string baseUrl = "window." + this.ClientID + "_Page({0});return false;"; /*Request.Url.PathAndQuery; if (baseUrl.Contains("?")) baseUrl = baseUrl.Substring(0, baseUrl.IndexOf("?")); baseUrl += "?p={0}" + (string.IsNullOrEmpty(Request.QueryString["o"]) ? string.Empty : ("&o=" + GetSortStr())) + (string.IsNullOrEmpty(FilterTitle) ? string.Empty : ("&s=" + Server.UrlEncode(FilterTitle)));*/ if (totalPages > 0 && totalCount > 0) { List<int> pageList = new List<int>(); if (totalPages <= 10) for (int i = 1; i <= totalPages; i++) pageList.Add(i); else { if (currentPage <= 6) pageList.AddRange(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, totalPages - 1, totalPages }); else if (currentPage >= totalPages - 5) pageList.AddRange(new int[] { 1, 2, totalPages - 7, totalPages - 6, totalPages - 5, totalPages - 4, totalPages - 3, totalPages - 2, totalPages - 1, totalPages }); else pageList.AddRange(new int[] { 1, 2, currentPage - 2, currentPage - 1, currentPage, currentPage + 1, currentPage + 2, totalPages - 1, totalPages }); } for (int p = 0; p < pageList.Count; p++) { int i = pageList[p]; if (i == 1 && currentPage > 1) { paging += "<li class=\"previous\"><a href=\"#\" onclick=\"" + string.Format(baseUrl, currentPage - 1) + "\">Previous </a></li>"; } if (totalPages > 10 && p > 0 && (i - 1 > pageList[p - 1])) paging += "<li class=\"page\">...</li>"; paging += currentPage == i ? "<li class=\"page\">" + i.ToString() + "</li>" : "<li class=\"page\"><a href=\"#\" onclick=\"" + string.Format(baseUrl, i) + "\">" + i.ToString() + "</a></li>"; if (i == totalPages && currentPage < totalPages) { paging += "<li class=\"next\"><a href=\"#\" onclick=\"" + string.Format(baseUrl, currentPage + 1) + "\">Next </a></li>"; } } } lPaging1.Text = lPaging2.Text = paging; rptRows.DataSource = contentlist2; rptRows.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { l10nManager = ObjectFactory.GetLocalizationManager(contAPI.RequestInformationRef); IsExcelExport = Request.QueryString["out"] == "xls"; IncludeFolderPath = Request.QueryString.AllKeys.Contains("fp") ? (Request.QueryString["fp"] == "1") : IsExcelExport; NameValueCollection filters = HttpUtility.ParseQueryString(Request.QueryString["f"]); foreach (string f in filters.Keys) SetFilterValue(f, filters[f]); ReportingCriteria criteria2 = new ReportingCriteria(); criteria2.FolderRecursive = true; criteria2.AddFilter(ReportingProperty.FolderId, CriteriaFilterOperator.EqualTo, FilterFolderId < 0 ? 0 : FilterFolderId); if (!string.IsNullOrEmpty(FilterTitle)) criteria2.AddFilter(ReportingProperty.Title, CriteriaFilterOperator.Contains, FilterTitle.Replace("&", "&").Replace("'", "'")); if (FilterLocale > 0) { if (!FilterLocaleNotIn) criteria2.AddFilter(ReportingProperty.Locale, CriteriaFilterOperator.Contains, "," + FilterLocale.ToString() + ","); else criteria2.AddFilter(ReportingProperty.Locale, CriteriaFilterOperator.DoesNotContain, "," + FilterLocale.ToString() + ","); } else if (FilterLocale == -1) { criteria2.AddFilter(ReportingProperty.Locale, CriteriaFilterOperator.EqualTo, string.Format(",{0},", CurrentLanguageId)); } if (FilterLocStatus != Ektron.Cms.Localization.LocalizationState.Undefined) criteria2.AddFilter(ReportingProperty.TranslationStatus, CriteriaFilterOperator.EqualTo, (byte)FilterLocStatus); if (!string.IsNullOrEmpty(FilterContentStatus)) criteria2.AddFilter(ReportingProperty.ContentStatus, CriteriaFilterOperator.EqualTo, FilterContentStatus); if (FilterLastModifiedStart != DateTime.MinValue) criteria2.AddFilter(ReportingProperty.LastModified, CriteriaFilterOperator.GreaterThanOrEqualTo, FilterLastModifiedStart); if (FilterLastModifiedEnd != DateTime.MinValue) criteria2.AddFilter(ReportingProperty.LastModified, CriteriaFilterOperator.LessThanOrEqualTo, FilterLastModifiedEnd); if (FilterDateCreatedStart != DateTime.MinValue) criteria2.AddFilter(ReportingProperty.DateCreated, CriteriaFilterOperator.GreaterThanOrEqualTo, FilterDateCreatedStart); if (FilterDateCreatedEnd != DateTime.MinValue) criteria2.AddFilter(ReportingProperty.DateCreated, CriteriaFilterOperator.LessThanOrEqualTo, FilterDateCreatedEnd); if (FilterContentId > 0) criteria2.AddFilter(ReportingProperty.ContentId, CriteriaFilterOperator.EqualTo, FilterContentId); if (FilterAuthorId > 0) criteria2.AddFilter(ReportingProperty.AuthorId, CriteriaFilterOperator.EqualTo, FilterAuthorId); if (FilterLanguageId > 0) criteria2.AddFilter(ReportingProperty.LanguageId, CriteriaFilterOperator.EqualTo, FilterLanguageId); criteria2.GetMetadata = true; criteria2.PagingInfo.CurrentPage = 0; criteria2.PagingInfo.RecordsPerPage = int.MaxValue; Pair sort = GetSort(Request.QueryString["s"]); criteria2.OrderByField = (ReportingProperty)sort.First; criteria2.OrderByDirection = (EkEnumeration.OrderByDirection)sort.Second; List<ReportingData> contentlist2 = l10nManager.GetReport(criteria2); int pageCount = 0; int totalCount = criteria2.PagingInfo.TotalRecords; int totalPages = criteria2.PagingInfo.TotalPages; int currentPage = criteria2.PagingInfo.CurrentPage; if (IsExcelExport) { pnlPrint.Visible = false; pnlExcel.Visible = true; rptExcel.DataSource = contentlist2; rptExcel.DataBind(); Response.Clear(); Response.ContentType = "application/ms-excel"; Response.AppendHeader("content-disposition", "attachment; filename=LocReport_" + DateTime.Now.Ticks.ToString() + ".xls"); Response.Write(RenderControl(plcExcel)); Response.End(); } else { pnlPrint.Visible = true; pnlExcel.Visible = false; rptPrint.DataSource = contentlist2; rptPrint.DataBind(); lResultCount.Text = totalCount.ToString() + " row" + (totalCount == 1 ? string.Empty : "s"); } }