Пример #1
0
    protected void rptSubitems_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem)
        {
            return;
        }

        ArticleForFEList artData = (ArticleForFEList)e.Item.DataItem;

        Guid   articleId      = artData.ArticleId;
        string articleSubject = artData.ArticleSubject;
        int    showTypeId     = artData.ShowTypeId.Value;
        string linkUrl        = artData.LinkUrl;
        string linkTarget     = artData.LinkTarget ?? "";
        string destUrl        = "/" + StringUtility.GetLinkUrlOfShowType(articleId, c.qsLangNo, showTypeId, linkUrl);

        HtmlAnchor btnItem = (HtmlAnchor)e.Item.FindControl("btnItem");

        btnItem.HRef  = destUrl;
        btnItem.Title = articleSubject;

        HtmlAnchor btnPic = (HtmlAnchor)e.Item.FindControl("btnPic");

        btnPic.HRef  = destUrl;
        btnPic.Title = articleSubject;

        if (!string.IsNullOrEmpty(linkTarget))
        {
            btnItem.Target = linkTarget;
            btnPic.Target  = linkTarget;
        }

        // get thumb picture
        List <ArticlePictureForFrontend> pictures = artPub.GetArticlePictureListForFrontend(articleId, c.qsCultureNameOfLangNo);

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

            Guid   picId      = artPic.PicId;
            string picSubject = artPic.PicSubject;

            HtmlImage imgPic = (HtmlImage)e.Item.FindControl("imgPic");
            imgPic.Src = string.Format("/FileArtPic.ashx?attid={0}&w=640&h=480&l={1}", picId, c.qsLangNo);
            imgPic.Alt = picSubject;
        }
    }
Пример #2
0
    protected void rptPictures_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        ArticlePictureForFrontend artPic = (ArticlePictureForFrontend)e.Item.DataItem;

        Guid   picId      = artPic.PicId;
        string picSubject = artPic.PicSubject;

        HtmlAnchor btnItem = (HtmlAnchor)e.Item.FindControl("btnItem");

        btnItem.Title = picSubject;
        btnItem.HRef  = string.Format("FileArtPic.ashx?attid={0}&l={1}", picId, c.qsLangNo);

        HtmlImage imgPic = (HtmlImage)e.Item.FindControl("imgPic");

        imgPic.Src = string.Format("FileArtPic.ashx?attid={0}&w=1024&h=768&l={1}", picId, c.qsLangNo);
        imgPic.Alt = picSubject;
    }
Пример #3
0
        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);
        }