温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.0正式版源码
当前文件:
SpaceBuiderV10Source/BlogControls/Channel/BlogRanks.cs,打开代码结构图
SpaceBuiderV10Source/BlogControls/Channel/BlogRanks.cs,打开代码结构图1//------------------------------------------------------------------------------ 2
// <copyright company="Tunynet"> 3
// Copyright (c) Tunynet Network Technology Co., Ltd. All rights reserved. 4
// </copyright> 5
//------------------------------------------------------------------------------ 6
7
using System; 8
using System.Collections.Generic; 9
using System.Text; 10
using SpaceBuilder.Controls.BaseClasses; 11
using SpaceBuilder.Components; 12
using SpaceBuilder.Blogs.Components; 13
using System.Web.UI.HtmlControls; 14
using System.Web.UI.WebControls; 15
using SpaceBuilder.Controls.Utils; 16
using SpaceBuilder.Utils; 17
using SpaceBuilder.Controls; 18
using TunyNet.Data.Utils; 19
using TunyNet.Utils; 20
21
namespace SpaceBuilder.Blogs.Controls 22
{ 23
public class BlogRanks : TemplatedWebControl 24
{ 25
SBContext wlContext; 26
27
protected override void OnInit(EventArgs e) 28
{ 29
if (SkinName == null) 30
ExternalSkinFileName = "Blogs/Skin-BlogRanks.ascx"; 31
else 32
ExternalSkinFileName = SkinName; 33
34
wlContext = SBContext.Current; 35
36
base.OnInit(e); 37
} 38
39
Child Controls 62
63
protected override void AttachChildControls() 64
{ 65
rankByPointsLi = FindControl("RankByPointsLi") as HtmlControl; 66
rankByPoints = FindControl("RankByPoints") as HyperLink; 67
rankByPostCountLi = FindControl("RankByPostCountLi") as HtmlControl; 68
rankByPostCount = FindControl("RankByPostCount") as HyperLink; 69
rankByCommentCountLi = FindControl("RankByCommentCountLi") as HtmlControl; 70
rankByCommentCount = FindControl("RankByCommentCount") as HyperLink; 71
rankByHitTimesLi = FindControl("RankByHitTimesLi") as HtmlControl; 72
rankByHitTimes = FindControl("RankByHitTimes") as HyperLink; 73
rankByWeekHitTimesLi = FindControl("RankByWeekHitTimesLi") as HtmlControl; 74
rankByWeekHitTimes = FindControl("RankByWeekHitTimes") as HyperLink; 75
rankByPostDateLi = FindControl("RankByPostDateLi") as HtmlControl; 76
rankByPostDate = FindControl("RankByPostDate") as HyperLink; 77
78
79
pager = FindControl("Pager") as Pager; 80
pager2 = FindControl("Pager2") as Pager; 81
82
blogsRepeater = FindControl("BlogsRepeater") as Repeater; 83
blogsRepeater.ItemDataBound += new RepeaterItemEventHandler(BlogsRepeater_ItemDataBound); 84
} 85
86
protected override void OnLoad(EventArgs e) 87
{ 88
base.OnLoad(e); 89
EnsureChildControls(); 90
/* 91
RankBy={0} 92
*/ 93
if (wlContext.GetIntFromQueryString("RankBy", 0) > 0) 94
this.SortBy = (SortBlogsBy)wlContext.GetIntFromQueryString("RankBy", 0); 95
96
if (!Page.IsPostBack) 97
DataBind(); 98
} 99
100
public override void DataBind() 101
{ 102
base.DataBind(); 103
Bind(); 104
} 105
106
void Bind() 107
{ 108
Header.AddTitle(wlContext.SiteName + " :: 博客(blog) - 博客排名", Context); 109
//string asdasd = ChannelUrls.Instance().BlogPostsForTab(10, (int)BlogThreadSortBy.TotalRatings, SortOrder.Descending); 110
111
switch (this.SortBy) 112
{ 113
case SortBlogsBy.Points: 114
rankByPointsLi.Attributes["class"] = "selected"; 115
break; 116
case SortBlogsBy.PostCount: 117
rankByPostCountLi.Attributes["class"] = "selected"; 118
break; 119
case SortBlogsBy.CommentCount: 120
rankByCommentCountLi.Attributes["class"] = "selected"; 121
break; 122
case SortBlogsBy.WeekHitTimes: 123
rankByWeekHitTimesLi.Attributes["class"] = "selected"; 124
break; 125
case SortBlogsBy.HitTimes: 126
rankByHitTimesLi.Attributes["class"] = "selected"; 127
break; 128
case SortBlogsBy.CreateDate: 129
rankByPostDateLi.Attributes["class"] = "selected"; 130
break; 131
} 132
133
rankByPoints.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.Points); 134
rankByPostCount.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.PostCount); 135
rankByCommentCount.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.CommentCount); 136
rankByHitTimes.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.HitTimes); 137
rankByWeekHitTimes.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.WeekHitTimes); 138
rankByPostDate.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.CreateDate); 139
140
//ChannelUrls.Instance(). 141
142
BlogQuery query = new BlogQuery(); 143
query.SortBy = this.SortBy; 144
query.SortOrder = SortOrder.Descending; 145
query.PageIndex = pager.PageIndex; 146
147
PagingDataSet<Weblog> pds = Weblogs.GetWeblogs(query); 148
if (pds != null) 149
{ 150
if (pager != null) 151
{ 152
pager.TotalRecords = pds.TotalRecords; 153
pager.PageSize = query.PageSize; 154
} 155
if (pager2 != null) 156
{ 157
pager2.TotalRecords = pds.TotalRecords; 158
pager2.PageSize = query.PageSize; 159
} 160
161
} 162
163
blogsRepeater.DataSource = pds.Records; 164
blogsRepeater.DataBind(); 165
} 166
167
private void BlogsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 168
{ 169
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 170
{ 171
Weblog blog = (Weblog)e.Item.DataItem; 172
173
if (blog != null) 174
{ 175
HyperLink blogName = e.Item.FindControl("BlogName") as HyperLink; 176
if (blogName != null) 177
{ 178
blogName.Text = blog.SectionName; 179
180
blogName.ToolTip = string.Format("查看 {0} 的博客", blogName.Text); 181
blogName.Text = StringUtils.Trim(blogName.Text, 15); 182
blogName.NavigateUrl = UserUrls.Instance().BlogHome(blog.ApplicationKey); 183
blogName.Attributes["target"] = "_blank"; 184
} 185
186
HyperLink author = e.Item.FindControl("Author") as HyperLink; 187
if (author != null) 188
{ 189
User blogmaster=SpaceBuilder.Components.Users.FindUserByUsername(blog.ApplicationKey); 190
if (blogmaster != null) 191
{ 192
author.Text = StringUtils.Trim(blogmaster.NickName, 8); 193
author.ToolTip = blogmaster.NickName; 194
author.NavigateUrl = UserUrls.Instance().UserProfile(blog.ApplicationKey, UserType.PersonUser); 195
author.Attributes["target"] = "_blank"; 196
} 197
} 198
199
Literal lastUpdatedDate = e.Item.FindControl("LastUpdatedDate") as Literal; 200
if (lastUpdatedDate != null) 201
lastUpdatedDate.Text = Formatter.FormatDate(blog.MostRecentPostDate); 202
203
Literal points = e.Item.FindControl("Points") as Literal; 204
if (points != null) 205
points.Text = blog.Points.ToString(); 206
207
//Literal postCount = e.Item.FindControl("ArticleCount") as Literal; 208
//if (postCount != null) 209
// postCount.Text = blog.ArticleCount.ToString(); 210
211
Literal articleCount = e.Item.FindControl("PostCount") as Literal; 212
if (articleCount != null) 213
articleCount.Text = blog.PostCount.ToString(); 214
215
Literal commentCount = e.Item.FindControl("CommentCount") as Literal; 216
if (commentCount != null) 217
commentCount.Text = blog.CommentCount.ToString(); 218
219
Literal hitTimes = e.Item.FindControl("HitTimes") as Literal; 220
if (hitTimes != null) 221
hitTimes.Text = blog.HitTimes.ToString(); 222
223
Literal weekHitTimes = e.Item.FindControl("WeekHitTimes") as Literal; 224
if (weekHitTimes != null) 225
weekHitTimes.Text = blog.WeekHitTimes.ToString(); 226
227
228
} 229
} 230
} 231
232
233
属性 246
247
} 248
}





}
}