ÄúĿǰÉÐδµÇ½£¬ÇëÑ¡Ôñ¡¾µÇ½¡¿»ò¡¾×¢²á¡¿
Ê×Ò³->²©¿ÍÂÛ̳->SpaceBuilder v1.1Ô´´úÂë>>BlogControls/Channel/PostRanks.cs>>Ô´ÂëÔÚÏ߲鿴
ÎÂܰÌáʾ£º´úÂëÔÚÏßä¯ÀÀ¹¦ÄÜÖ»ÄÜ×öΪԴÂëä¯ÀÀ²Î¿¼£¬Èç¹ûÏë¸ü½øÒ»²½Á˽â¸Ã´úÂëÇëÏÂÔØ£ºSpaceBuilder v1.1Ô´´úÂë
µ±Ç°Îļþ£ºÎļþÀàÐÍ SpaceBuider11/BlogControls/Channel/PostRanks.cs£¬´ò¿ª´úÂë½á¹¹Í¼
ÆÕͨÊÓͼ
		            
1//------------------------------------------------------------------------------ 2// <copyright company="Tunynet"> 3// Copyright (c) Tunynet Inc. All rights reserved. 4// </copyright> 5//------------------------------------------------------------------------------ 6 7using System; 8using System.Collections.Generic; 9using System.Text; 10using SpaceBuilder.Components; 11using SpaceBuilder.Blogs.Components; 12using System.Web.UI.HtmlControls; 13using System.Web.UI.WebControls; 14using SpaceBuilder.Controls.BaseClasses; 15using SpaceBuilder.Controls.Utils; 16using SpaceBuilder.Utils; 17using SpaceBuilder.Controls; 18using TunyNet.Utils; 19using TunyNet.Data.Utils; 20using System.Threading; 21 22namespace SpaceBuilder.Blogs.Controls 23{ 24 /// <summary> 25 /// ÏÔʾ²©¿ÍÎÄÕÂÅÅÐÐ 26 /// </summary> 27 public class PostRanks : TemplatedWebControl 28 { 29 SBContext wlContext; 30 /// <summary> 31 /// ¿Ø¼þ³õʼ»¯Ê±£¬¸¸Àà»áµ÷ÓÃÕâ¸ö·½·¨ 32 /// </summary> 33 /// <param name="e"></param> 34 protected override void OnInit(EventArgs e) 35 { 36 if (SkinName == null) 37 ExternalSkinFileName = "Blogs/Skin-PostRanks.ascx"; 38 else 39 ExternalSkinFileName = SkinName; 40 41 wlContext = SBContext.Current; 42 43 base.OnInit(e); 44 } 45 46 Child Controls 68 69 /// <summary> 70 /// ¼ÓÔØ×ӿؼþ£¬¸¸Àà¼ÓÔØÆ¤·ôÎļþʱ»áµ÷ÓÃÕâ¸ö·½·¨ 71 /// </summary> 72 protected override void AttachChildControls() 73 { 74 rankByMostRecentLi = FindControl("RankByMostRecentLi") as HtmlControl; 75 rankByMostRecent = FindControl("RankByMostRecent") as HyperLink; 76 rankByTotalViewsLi = FindControl("RankByTotalViewsLi") as HtmlControl; 77 rankByTotalViews = FindControl("RankByTotalViews") as HyperLink; 78 rankByTotalRepliesLi = FindControl("RankByTotalRepliesLi") as HtmlControl; 79 rankByTotalReplies = FindControl("RankByTotalReplies") as HyperLink; 80 rankByTotalRatingsLi = FindControl("RankByTotalRatingsLi") as HtmlControl; 81 rankByTotalRatings = FindControl("RankByTotalRatings") as HyperLink; 82 83 84 pager = FindControl("Pager") as PostBackPager; 85 pager.PageIndexChanged += new PagerEventHandler(Pager_PageIndexChanged); 86 87 88 pager2 = FindControl("Pager2") as Pager; 89 90 postsRepeater = FindControl("PostsRepeater") as Repeater; 91 postsRepeater.ItemDataBound += new RepeaterItemEventHandler(PostsRepeater_ItemDataBound); 92 } 93 94 /// <summary> 95 /// µ±Óû§²é¿´ÆäËüҳʱ£¬»áµ÷ÓÃÕâ¸ö·½·¨£¬ÔÙÊý¾Ý¿âÖÐȥȡ¸ÃÒ³µÄÊý¾Ý 96 /// </summary> 97 /// <param name="sender"></param> 98 /// <param name="e"></param> 99 void Pager_PageIndexChanged(object sender, PagerEventArgs e) 100 { 101 Bind(); 102 } 103 104 /// <summary> 105 /// ¿Ø¼þ±»¼ÓÔØÊ±£¬»áÏȵ÷ÓÃÕâ¸ö·½·¨ 106 /// </summary> 107 /// <param name="e"></param> 108 protected override void OnLoad(EventArgs e) 109 { 110 base.OnLoad(e); 111 EnsureChildControls(); 112 113 /* 114 RankBy={0} 115 */ 116 if (wlContext.GetIntFromQueryString("RankBy", 0) > 0) 117 this.SortBy = (BlogThreadSortBy)wlContext.GetIntFromQueryString("RankBy", 0); 118 119 if (!Page.IsPostBack) 120 Bind(); 121 } 122 123 /// <summary> 124 /// Ϊ¿Ø¼þ°ó¶¨Êý¾Ý 125 /// </summary> 126 void Bind() 127 { 128 Header.AddTitle(Globals.SiteName + " :: ²©¿Í - ÎÄÕÂÅÅÐÐ", Context); 129 switch (this.SortBy) 130 { 131 case BlogThreadSortBy.MostRecent: 132 rankByMostRecentLi.Attributes["class"] = "selected"; 133 break; 134 case BlogThreadSortBy.TotalViews: 135 rankByTotalViewsLi.Attributes["class"] = "selected"; 136 break; 137 case BlogThreadSortBy.TotalReplies: 138 rankByTotalRepliesLi.Attributes["class"] = "selected"; 139 break; 140 case BlogThreadSortBy.TotalRatings: 141 rankByTotalRatingsLi.Attributes["class"] = "selected"; 142 break; 143 } 144 //²âÊÔÓà 145 // string asdfasdf= ChannelUrls.Instance().BlogsForTab(10, (int)SortBlogsBy.WeekHitTimes, SortOrder.Descending); 146 rankByMostRecent.NavigateUrl = ChannelUrls.Instance().WeblogPostRanks((int)BlogThreadSortBy.MostRecent); 147 rankByTotalViews.NavigateUrl = ChannelUrls.Instance().WeblogPostRanks((int)BlogThreadSortBy.TotalViews); 148 rankByTotalReplies.NavigateUrl = ChannelUrls.Instance().WeblogPostRanks((int)BlogThreadSortBy.TotalReplies); 149 rankByTotalRatings.NavigateUrl = ChannelUrls.Instance().WeblogPostRanks((int)BlogThreadSortBy.TotalRatings); 150 151 //·â×°²éѯÌõ¼þ 152 BlogThreadQuery query = new BlogThreadQuery(); 153 query.IsPublicFilter = true; 154 query.IncludeTags = false; 155 //query.MaxRecords = 500; 156 query.SortBy = this.SortBy; 157 query.SortOrder = SortOrder.Descending; 158 query.PageIndex = pager.PageIndex; 159 //´ÓÊý¾Ý¿âÖлñÈ¡Êý¾Ý 160 PagingDataSet<BlogThread> pds = BlogPosts.GetBlogThreads(query); 161 162 if (pds != null) 163 { 164 if (pager != null) 165 { 166 pager.TotalRecords = pds.TotalRecords; 167 pager.PageSize = query.PageSize; 168 } 169 if (pager2 != null) 170 { 171 pager2.TotalRecords = pds.TotalRecords; 172 pager2.PageSize = query.PageSize; 173 } 174 } 175 176 postsRepeater.DataSource = pds.Records; 177 postsRepeater.DataBind(); 178 } 179 180 /// <summary> 181 /// °ó¶¨Ã¿Ìõ¼Ç¼Ïîʱ£¬»áµ÷ÓÃÕâ¸ö·½·¨ 182 /// Ä¿µÄÊÇΪÁ˸øÃ¿Ìõ¼Ç¼ÖжÔÓ¦µÄÿ¸ö×ӿؼþ°ó¶¨ÉÏÊý¾Ý 183 /// </summary> 184 /// <param name="sender"></param> 185 /// <param name="e"></param> 186 private void PostsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 187 { 188 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 189 { 190 BlogThread post = (BlogThread)e.Item.DataItem; 191 if (post != null) 192 { 193 HyperLink subject = e.Item.FindControl("Subject") as HyperLink; 194 if (subject != null) 195 { 196 subject.Text = StringUtils.Trim(post.Subject, 30); 197 subject.ToolTip = post.Subject; 198 subject.NavigateUrl = BlogUrls.Instance().ShowPost(post); 199 subject.Attributes["target"] = "_blank"; 200 } 201 202 Literal blogPostType = e.Item.FindControl("BlogPostType") as Literal; 203 if (blogPostType != null) 204 blogPostType.Text = post.BlogPostTypeText; 205 206 Literal postDate = e.Item.FindControl("PostDate") as Literal; 207 if (postDate != null) 208 postDate.Text = Formatter.FormatDate(post.PostDate); 209 210 Literal totalReplies = e.Item.FindControl("TotalReplies") as Literal; 211 if (totalReplies != null) 212 totalReplies.Text = post.ReplyCount.ToString(); 213 214 Literal totalViews = e.Item.FindControl("TotalViews") as Literal; 215 if (totalViews != null) 216 totalViews.Text = post.HitTimes.ToString(); 217 RatingButton ratingButton = e.Item.FindControl("PostRating") as RatingButton; 218 if (ratingButton != null) 219 { 220 ratingButton.TotalRatings = post.TotalRatings; 221 ratingButton.RatingSum = post.RatingSum; 222 ratingButton.ThreadID = post.ThreadID; 223 ratingButton.ApplicationType = ApplicationType.Blog; 224 } 225 226 HyperLink blogName = e.Item.FindControl("BlogName") as HyperLink; 227 if (blogName != null) 228 { 229 blogName.Text = post.Weblog.SectionName; 230 if (ValueHelper.IsNullOrEmpty(blogName.Text)) 231 blogName.Text = post.User.DisplayName; 232 233 blogName.ToolTip = string.Format("²é¿´ {0} µÄ²©¿Í", blogName.Text); 234 blogName.NavigateUrl = UserUrls.Instance().BlogHome(post.Weblog.ApplicationKey); 235 blogName.Attributes["target"] = "_blank"; 236 } 237 } 238 } 239 } 240 241 242 ÊôÐÔ 255 256 } 257}
»¹Ã»ÓÐÕÒµ½ÄúÐÄÒǵÄÄÚÈÝ£¿ÇëÓÃ.netÔ´Âë´óËѲ¶
´úÂëÆ¬¶Ï ´ò°üÏÂÔØ¸ÃÏîÄ¿ÍêÕûÔ´Â룺SpaceBuilder v1.1Ô´´úÂë