コード例 #1
0
        protected void rptThreads_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.DataItem != null)
            {
                if (e.Item.DataItem is ThreadModel)
                {
                    ThreadModel item     = (ThreadModel)e.Item.DataItem;
                    Item        thread   = null;
                    HiddenField hdFrmID  = (HiddenField)e.Item.FindControl("forumId");
                    HiddenField hdThID   = (HiddenField)e.Item.FindControl("threadId");
                    string      forumId  = String.Empty;
                    string      threadId = String.Empty;
                    if (hdFrmID != null && hdThID != null)
                    {
                        forumId  = hdFrmID.Value;
                        threadId = hdThID.Value;
                        thread   = Threads.ConvertThreadtoSitecoreItem(forumId, threadId); //Sitecore.Context.Database.SelectSingleItem("fast:/sitecore/content/Home//*[@Subject = '" + subject + "']");
                        // ID = thread.ID.ToString();
                    }
                    HtmlAnchor hrefDiscussions = (HtmlAnchor)e.Item.FindControl("hrefDiscussion");
                    if (hrefDiscussions != null)
                    {
                        if (thread != null)
                        {
                            hrefDiscussions.HRef = LinkManager.GetItemUrl(thread);
                        }
                    }

                    HtmlAnchor hrefLastPostUser = (HtmlAnchor)e.Item.FindControl("hrefLastPostUser");
                    if (hrefLastPostUser != null)
                    {
                        if (thread != null)
                        {
                            hrefLastPostUser.HRef = MembershipHelper.GetPublicProfileUrl(item.LastPostUser);
                        }
                    }

                    Literal litDiscussionLabel = (Literal)e.Item.FindControl("litDiscussionLabel");
                    if (litDiscussionLabel != null)
                    {
                        litDiscussionLabel.Text = DictionaryConstants.DiscussionLabel;
                    }

                    Literal litRepliesLabel = (Literal)e.Item.FindControl("litRepliesLabel");
                    if (litRepliesLabel != null)
                    {
                        litRepliesLabel.Text = DictionaryConstants.RepliesLabel;
                    }


                    Literal litLatestPostLabel = (Literal)e.Item.FindControl("litLatestPostLabel");
                    if (litLatestPostLabel != null)
                    {
                        litLatestPostLabel.Text = DictionaryConstants.LatestPostLabel;
                    }
                }
            }
        }
コード例 #2
0
        protected void rptMyGroups_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item != null)
            {
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    GroupCardModel  thisItem     = ((GroupCardModel)e.Item.DataItem);
                    ThreadModel     recentThread = null;
                    GroupJoinButton joinBtn      = e.FindControlAs <GroupJoinButton>("btnJoin");
                    if (joinBtn != null)
                    {
                        var id = thisItem.GroupID;
                        joinBtn.LoadState(id);
                    }

                    Literal litReplies = e.FindControlAs <Literal>("litRepliesLabel");
                    if (litReplies != null)
                    {
                        litReplies.Text = DictionaryConstants.RepliesLabel;
                    }
                    Literal litPostedByLabel = e.FindControlAs <Literal>("litPostedByLabel");
                    if (litPostedByLabel != null)
                    {
                        litPostedByLabel.Text = DictionaryConstants.PostedByLabel;
                    }

                    HyperLink hrefGroImageLink = e.FindControlAs <HyperLink>("hrefGroupImageLink");
                    if (hrefGroImageLink != null)
                    {
                        hrefGroImageLink.NavigateUrl = thisItem.GrpItem.GetUrl();
                    }

                    Image imgGrpImage = e.FindControlAs <Image>("imgGroupImage");
                    if (imgGrpImage != null)
                    {
                        imgGrpImage.ImageUrl = thisItem.ModeratorAvatarUrl ?? "http://placehold.it/190x107";
                    }

                    if (thisItem.Forums.Count > 0 && thisItem.Forums != null)
                    {
                        var recentThreadlist = (thisItem.Forums
                                                .Where(f => f.Threads.Count > 0 && f.Threads != null)
                                                .Select(x => x.Threads.Where(thread => thread != null)
                                                        .OrderByDescending(t => t.LastPostDate)).FirstOrDefault());


                        if (recentThreadlist != null)
                        {
                            recentThread = recentThreadlist.FirstOrDefault <ThreadModel>();
                        }

                        if (recentThread != null)
                        {
                            HyperLink hrefDiscussionLink = e.FindControlAs <HyperLink>("hrefDiscussionLink");
                            if (hrefDiscussionLink != null)
                            {
                                var threadItem = Threads.ConvertThreadtoSitecoreItem(recentThread.ForumID, recentThread.ThreadID);
                                if (threadItem != null)
                                {
                                    hrefDiscussionLink.NavigateUrl = threadItem.GetUrl();
                                }
                            }
                            Literal litDiscussionExcerpt = e.FindControlAs <Literal>("litDiscussionExcerpt");
                            if (litDiscussionExcerpt != null)
                            {
                                litDiscussionExcerpt.Text = recentThread.Subject;
                            }
                            Literal litNumReplies = e.FindControlAs <Literal>("litNumReplies");
                            if (litNumReplies != null)
                            {
                                litNumReplies.Text = recentThread.ReplyCount;
                            }

                            Literal litPostUserName = e.FindControlAs <Literal>("litPostUserName");
                            if (litPostUserName != null)
                            {
                                litPostUserName.Text = recentThread.LastPostUser;
                            }
                            HyperLink hrefPostUser = e.FindControlAs <HyperLink>("hrefPostUser");
                            if (hrefPostUser != null)
                            {
                                hrefPostUser.NavigateUrl = MembershipHelper.GetPublicProfileUrl(recentThread.LastPostUser);
                            }
                            Literal litPostTime = e.FindControlAs <Literal>("litPostTime");
                            if (litPostTime != null)
                            {
                                litPostTime.Text = recentThread.LastPostTime;
                            }
                        }
                    }
                }
            }
        }