温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.0正式版源码
当前文件:
SpaceBuiderV10Source/BlogControls/Channel/ListPosts.cs,打开代码结构图
SpaceBuiderV10Source/BlogControls/Channel/ListPosts.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 System.Web.UI.WebControls; 13
using SpaceBuilder.Controls.Utils; 14
using SpaceBuilder.Blogs.Components; 15
using SpaceBuilder.Utils; 16
using SpaceBuilder.Controls; 17
using TunyNet.Utils; 18
using TunyNet.Data.Utils; 19
20
namespace SpaceBuilder.Blogs.Controls 21
{ 22
public class ListPosts : TemplatedWebControl 23
{ 24
SBContext wlContext; 25
26
protected override void OnInit(EventArgs e) 27
{ 28
if (SkinName == null) 29
ExternalSkinFileName = "Blogs/Skin-ListPosts.ascx"; 30
else 31
ExternalSkinFileName = SkinName; 32
33
wlContext = SBContext.Current; 34
35
base.OnInit(e); 36
} 37
38
Child Controls 49
50
protected override void AttachChildControls() 51
{ 52
pageTitle = FindControl("PageTitle") as Literal; 53
title = FindControl("Title") as Literal; 54
55
pager = FindControl("Pager") as Pager; 56
pager2 = FindControl("Pager2") as Pager; 57
58
weblogPostsRepeater = FindControl("WeblogPostsRepeater") as Repeater; 59
weblogPostsRepeater.ItemDataBound += new RepeaterItemEventHandler(WeblogPostsRepeater_ItemDataBound); 60
} 61
62
protected override void OnLoad(EventArgs e) 63
{ 64
base.OnLoad(e); 65
EnsureChildControls(); 66
67
/* 68
TagName={0} 69
*/ 70
if (!ValueHelper.IsNullOrEmpty(wlContext.GetStringFromQueryString("TagName", string.Empty))) 71
this.TagName = wlContext.GetStringFromQueryString("TagName", string.Empty); 72
73
if (!Page.IsPostBack) 74
Bind(); 75
} 76
77
void Bind() 78
{ 79
if (ValueHelper.IsNullOrEmpty(this.TagName)) 80
return; 81
82
Header.AddTitle(wlContext.SiteName + " :: 博客(blog)", Context); 83
84
title.Text=TagName; 85
86
BlogThreadQuery query = new BlogThreadQuery(); 87
query.TagName = this.TagName; 88
query.SortBy = BlogThreadSortBy.MostRecent; 89
query.SortOrder = SortOrder.Descending; 90
query.PageIndex = pager.PageIndex; 91
query.IsPublicFilter = true; 92
93
PagingDataSet<BlogThread> pds = BlogPosts.GetBlogThreads(query); 94
if (pds != null && pds.Records.Count > 0) 95
{ 96
if (pager != null) 97
{ 98
pager.TotalRecords = pds.TotalRecords; 99
pager.PageSize = query.PageSize; 100
} 101
if (pager2 != null) 102
{ 103
pager2.TotalRecords = pds.TotalRecords; 104
pager2.PageSize = query.PageSize; 105
} 106
} 107
108
weblogPostsRepeater.DataSource = pds.Records; 109
weblogPostsRepeater.DataBind(); 110
} 111
112
private void WeblogPostsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 113
{ 114
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 115
{ 116
BlogThread post = (BlogThread)e.Item.DataItem; 117
if (post != null) 118
{ 119
HyperLink subject = e.Item.FindControl("Subject") as HyperLink; 120
if (subject != null) 121
{ 122
subject.Text = StringUtils.Trim(post.Subject, 20); 123
subject.ToolTip = post.Subject; 124
subject.NavigateUrl = BlogUrls.Instance().ShowPost(post); 125
subject.Attributes["target"] = "_blank"; 126
} 127
128
Literal blogPostType = e.Item.FindControl("BlogPostType") as Literal; 129
if (blogPostType != null) 130
blogPostType.Text = post.BlogPostTypeText; 131
132
HyperLink blogName = e.Item.FindControl("BlogName") as HyperLink; 133
if (blogName != null) 134
{ 135
blogName.Text = post.Weblog.SectionName; 136
if (ValueHelper.IsNullOrEmpty(blogName.Text)) 137
blogName.Text = post.User.DisplayName; 138
139
blogName.ToolTip = string.Format("查看 {0} 的博客", blogName.Text); 140
blogName.NavigateUrl = UserUrls.Instance().BlogHome(post.Weblog.ApplicationKey); 141
blogName.Attributes["target"] = "_blank"; 142
} 143
144
Literal postDate = e.Item.FindControl("PostDate") as Literal; 145
if (postDate != null) 146
postDate.Text = Formatter.FormatDatePost(post.PostDate); 147
148
Literal commentCount = e.Item.FindControl("CommentCount") as Literal; 149
if (commentCount != null) 150
commentCount.Text = post.ReplyCount.ToString(); 151
152
Literal hitTimes = e.Item.FindControl("HitTimes") as Literal; 153
if (hitTimes != null) 154
hitTimes.Text = post.HitTimes.ToString(); 155
} 156
} 157
} 158
159
160
属性 173
174
} 175
}





}
}