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