Example #1
0
    private void DisplaySubitems()
    {
        SubitemsArea.Visible = articleData.IsListAreaShowInFrontStage;

        if (!SubitemsArea.Visible)
        {
            return;
        }

        ArticleValidListQueryParams param = new ArticleValidListQueryParams()
        {
            ParentId    = articleData.ArticleId.Value,
            CultureName = c.qsCultureNameOfLangNo,
            Kw          = ""
        };

        param.PagedParams = new PagedListQueryParams()
        {
            BeginNum   = 0,
            EndNum     = 0,
            SortField  = articleData.SortFieldOfFrontStage,
            IsSortDesc = articleData.IsSortDescOfFrontStage
        };

        // get total of items
        artPub.GetArticleValidListForFrontend(param);

        // update pager and get begin end of item numbers
        int itemTotalCount = param.PagedParams.RowCount;

        ucDataPager.Initialize(itemTotalCount, c.qsPageCode);

        param.PagedParams = new PagedListQueryParams()
        {
            BeginNum   = ucDataPager.BeginItemNumberOfPage,
            EndNum     = ucDataPager.EndItemNumberOfPage,
            SortField  = articleData.SortFieldOfFrontStage,
            IsSortDesc = articleData.IsSortDescOfFrontStage
        };

        List <ArticleForFEList> subitems = artPub.GetArticleValidListForFrontend(param);

        if (subitems != null)
        {
            rptSubitems.DataSource = subitems;
            rptSubitems.DataBind();
        }
    }
        public override ClientResult ProcessRequest()
        {
            int      minMs = 500; //最少讓client等?毫秒
            DateTime start = DateTime.Now;

            ClientResult cr = null;

            Guid   articleId;
            string artId;
            int    p;

            artId     = GetParamValue("artid");
            articleId = new Guid(artId);
            p         = Convert.ToInt32(GetParamValue("p"));

            if (p == 1)
            {
                minMs = 0;  //第一頁快一點
            }

            // get article data
            if (c.RetrieveArticleIdAndData(articleId))
            {
                articleData = c.GetArticleData();
            }
            else
            {
                cr = new ClientResult()
                {
                    b = false, err = "no data"
                };

                System.Threading.Thread.Sleep(minMs);
                return(cr);
            }

            // get sub-items
            ArticleValidListQueryParams param = new ArticleValidListQueryParams()
            {
                ParentId    = articleData.ArticleId.Value,
                CultureName = c.qsCultureNameOfLangNo,
                Kw          = ""
            };

            param.PagedParams = new PagedListQueryParams()
            {
                BeginNum   = 0,
                EndNum     = 0,
                SortField  = articleData.SortFieldOfFrontStage,
                IsSortDesc = articleData.IsSortDescOfFrontStage
            };

            // get total of items
            artPub.GetArticleValidListForFrontend(param);

            // setting pager rule
            if (string.Compare(articleData.ControlName, "ListBlocks", true) == 0)
            {
                dataPager.MaxItemCountOfPage            = 6;
                dataPager.MaxDisplayCountInPageCodeArea = 5;
            }
            else
            {
                dataPager.MaxItemCountOfPage            = 10;
                dataPager.MaxDisplayCountInPageCodeArea = 5;
            }

            // update pager and get begin end of item numbers
            dataPager.ItemTotalCount = param.PagedParams.RowCount;
            dataPager.SetCurrentPageCodeAndRecalc(p);

            param.PagedParams = new PagedListQueryParams()
            {
                BeginNum   = dataPager.BeginItemNumberOfPage,
                EndNum     = dataPager.EndItemNumberOfPage,
                SortField  = articleData.SortFieldOfFrontStage,
                IsSortDesc = articleData.IsSortDescOfFrontStage
            };

            List <ArticleForFEList> subitems = artPub.GetArticleValidListForFrontend(param);

            if (subitems == null)
            {
                ArticlePagedInfo info = new ArticlePagedInfo()
                {
                    pageCode = 0, pageTotal = 0
                };
                cr = new ClientResult()
                {
                    b = true, o = info
                };

                System.Threading.Thread.Sleep(minMs);
                return(cr);
            }

            // get thumbs
            List <object> articleThumbs = new List <object>();

            foreach (ArticleForFEList art in subitems)
            {
                ArticleForFEListWithThumb artThumb = new ArticleForFEListWithThumb(art);
                Guid itemId = art.ArticleId;

                List <ArticlePictureForFrontend> pictures = artPub.GetArticlePictureListForFrontend(itemId, c.qsCultureNameOfLangNo);
                string picId      = "";
                string picSubject = "";

                if (pictures != null && pictures.Count > 0)
                {
                    ArticlePictureForFrontend artPic = pictures[0];

                    picId      = artPic.PicId.ToString();
                    picSubject = artPic.PicSubject;
                }

                artThumb.PicId      = picId;
                artThumb.PicSubject = picSubject;

                articleThumbs.Add(artThumb);
            }

            ArticlePagedInfo pagedInfo = new ArticlePagedInfo()
            {
                pageCode  = p,
                pageTotal = dataPager.PageTotalCount,
                itemTotal = dataPager.ItemTotalCount,
                itemList  = articleThumbs
            };

            cr = new ClientResult()
            {
                b = true,
                o = pagedInfo
            };

            TimeSpan ts = DateTime.Now - start;

            if (ts.TotalMinutes < minMs)
            {
                System.Threading.Thread.Sleep(minMs - (int)ts.TotalMinutes);
            }

            return(cr);
        }