Esempio n. 1
0
    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("&", "&amp;").Replace("'", "&#39;"));

        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&nbsp;</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&nbsp;</a></li>";
                }
            }
        }

        lPaging1.Text = lPaging2.Text = paging;

        rptRows.DataSource = contentlist2;
        rptRows.DataBind();
    }
Esempio n. 2
0
    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("&", "&amp;").Replace("'", "&#39;"));

        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");
        }
    }