温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.0正式版源码
当前文件:
SpaceBuiderV10Source/BlogControls/Admin/ContentList.cs,打开代码结构图
SpaceBuiderV10Source/BlogControls/Admin/ContentList.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.Web.UI.WebControls; 9
10
using SpaceBuilder.Blogs.Components; 11
using SpaceBuilder.Components; 12
using SpaceBuilder.Controls; 13
using SpaceBuilder.Controls.Utils; 14
using SpaceBuilder.Security; 15
using SpaceBuilder.Utils; 16
using SpaceBuilder.Posts.Permissions; 17
using TunyNet.Utils; 18
using TunyNet.Data.Utils; 19
20
namespace SpaceBuilder.Blogs.Controls 21
{ 22
23
public class ContentList : WeblogThemedControl 24
{ 25
/// <summary> 26
/// 验证当前用户身份 27
/// </summary> 28
protected override void Authorize(Weblog w) 29
{ 30
base.Authorize(w); 31
if (CurrentUser.IsAnonymous) 32
PermissionBase.RedirectOrExcpetion(SBExceptionType.AccessDenied, "不允许匿名用户访问"); 33
34
if (!CurrentUser.IsBlogAdministrator) 35
Permissions.AccessCheck(w, Permission.Post, CurrentUser); 36
} 37
38
private Literal pageTitle; 39
private HyperLink createWebPostButton; 40
private HyperLink manageTagsButton; 41
private Repeater postListRepeater; 42
private PostBackPager pager; 43
44
protected override void AttachChildControls() 45
{ 46
pageTitle = FindControl("PageTitle") as Literal; 47
createWebPostButton = FindControl("CreateWebPostButton") as HyperLink; 48
manageTagsButton = FindControl("ManageTagsButton") as HyperLink; 49
50
pager = FindControl("Pager") as PostBackPager; 51
pager.PageIndexChanged += new PagerEventHandler(pager_PageIndexChanged); 52
53
postListRepeater = FindControl("PostListRepeater") as Repeater; 54
55
if (postListRepeater != null) 56
{ 57
postListRepeater.ItemDataBound += new RepeaterItemEventHandler(PostListRepeater_ItemDataBound); 58
postListRepeater.ItemCommand += new RepeaterCommandEventHandler(PostListRepeater_ItemCommand); 59
} 60
} 61
62
protected override void OnLoad(EventArgs e) 63
{ 64
base.OnLoad(e); 65
EnsureChildControls(); 66
if (!Page.IsPostBack) 67
DataBind(); 68
} 69
70
public override void DataBind() 71
{ 72
base.DataBind(); 73
this.Bind(); 74
} 75
76
void Bind() 77
{ 78
if (pageTitle != null) 79
pageTitle.Text = "管理我的文章"; 80
this.SetPageTitle("管理我的文章"); 81
82
createWebPostButton.NavigateUrl = BlogUrls.Instance().PostEditor(CurrentWeblog.ApplicationKey); 83
manageTagsButton.NavigateUrl = GlobalUrls.Instance().ManageUserTags(CurrentDomainUser.UserName, CurrentDomainUser.UserType, TagType.Blog); 84
85
BlogThreadQuery query = new BlogThreadQuery(); 86
query.SectionID = this.CurrentWeblog.SectionID; 87
query.BlogThreadType = BlogThreadType.Recent; 88
query.IncludeTags = true; 89
query.IsPublicFilter = false; 90
query.PageIndex = pager.PageIndex; 91
query.PageSize = this.displayItemCount; 92
query.SortOrder = SortOrder.Descending; 93
query.SortBy = BlogThreadSortBy.MostRecent; 94
95
PagingDataSet<BlogThread> threads = BlogPosts.GetBlogThreads(query); 96
postListRepeater.DataSource = threads.Records; 97
postListRepeater.DataBind(); 98
99
if (threads.Records != null) 100
{ 101
pager.TotalRecords = threads.TotalRecords; 102
pager.PageSize = query.PageSize; 103
if (pager.TotalRecords <= pager.PageSize) 104
pager.ShowTotalSummary = false; 105
} 106
} 107
108
private void PostListRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 109
{ 110
BlogThread wet = e.Item.DataItem as BlogThread; 111
if (wet != null) 112
{ 113
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 114
{ 115
HyperLink litTitle = e.Item.FindControl("Title") as HyperLink; 116
if (litTitle != null) 117
{ 118
litTitle.Text = StringUtils.Trim(wet.Subject, 15); 119
litTitle.NavigateUrl = BlogUrls.Instance().ShowPost(wet, CurrentWeblog); 120
litTitle.ToolTip = string.Format("{0}:{1}", ResourceManager.GetString("View"), WebUtils.HtmlDecode(wet.Subject)); 121
switch (wet.BlogPostType) 122
{ 123
case BlogPostType.Post: 124
litTitle.Text += "[原创]"; 125
break; 126
case BlogPostType.Article: 127
litTitle.Text += "[转帖]"; 128
break; 129
} 130
} 131
132
Literal tags = e.Item.FindControl("Tags") as Literal; 133
if (tags != null) 134
{ 135
if (wet.Tags.Count > 0) 136
{ 137
foreach (UserTag tag in wet.Tags) 138
{ 139
tags.Text += string.Format("<a href='{0}' title='此标签下还有{1}篇文章'>{2}</a> ", GlobalUrls.Instance().ShowBlogPostsByTag(CurrentDomainUser.UserName, tag.TagName), tag.ItemCount, tag.TagName); 140
} 141
} 142
} 143
144
Literal litPubDate = e.Item.FindControl("PubDate") as Literal; 145
if (litPubDate != null) 146
litPubDate.Text = Formatter.FormatDate(wet.PostDate); 147
148
Image publishStatus = e.Item.FindControl("PublishStatus") as Image; 149
if (wet.IsPublic) 150
{ 151
publishStatus.ImageUrl = "~/Utility/Icons/icon_true.gif"; 152
publishStatus.ToolTip = "此文章已发布"; 153
} 154
else 155
{ 156
publishStatus.ToolTip = "此文章未发布"; 157
publishStatus.ImageUrl = "~/Utility/Icons/icon_false.gif"; 158
} 159
160
Literal litReads = e.Item.FindControl("Reads") as Literal; 161
if (litReads != null) 162
litReads.Text = wet.HitTimes.ToString(); 163
164
Literal litAggReads = e.Item.FindControl("AggReads") as Literal; 165
if (litAggReads != null) 166
litAggReads.Text = wet.RssViewTimes.ToString(); 167
168
Literal litComments = e.Item.FindControl("Comments") as Literal; 169
if (litComments != null) 170
litComments.Text = wet.ReplyCount.ToString(); 171
172
ImageButton EditButton = e.Item.FindControl("Edit") as ImageButton; 173
if (EditButton != null) 174
{ 175
EditButton.CommandArgument = wet.PostID.ToString(); 176
//EditButton.Text = ResourceManager.GetString("Edit"); 177
} 178
179
ImageButton DeleteButton = e.Item.FindControl("Delete") as ImageButton; 180
if (DeleteButton != null) 181
{ 182
DeleteButton.CommandArgument = wet.PostID.ToString(); 183
//DeleteButton.Text = ResourceManager.GetString("Delete"); 184
DeleteButton.Attributes["onclick"] = "if ( !confirm('确认要删除此篇文章吗?') ) {return false; } "; 185
} 186
187
HyperLink referrals = e.Item.FindControl("ReferralLink") as HyperLink; 188
if (referrals != null) 189
{ 190
referrals.NavigateUrl = BlogUrls.Instance().ReferralToPost(this.CurrentWeblog.ApplicationKey, wet.PostID); 191
referrals.Text = "访问记录"; 192
} 193
} 194
} 195
} 196
197
private void PostListRepeater_ItemCommand(object source, RepeaterCommandEventArgs e) 198
{ 199
switch (e.CommandName) 200
{ 201
case "Edit": 202
Context.Response.Redirect(BlogUrls.Instance().PostEditor(CurrentWeblog.ApplicationKey, int.Parse((string)e.CommandArgument)), true); 203
break; 204
case "Delete": 205
BlogPosts.DeletePost(int.Parse((string)e.CommandArgument)); 206
//Context.Response.Redirect(BlogUrls.Instance().ManageContents(CurrentWeblog.ApplicationKey), true); 207
Bind(); 208
break; 209
} 210
} 211
212
void pager_PageIndexChanged(object sender, PagerEventArgs e) 213
{ 214
Bind(); 215
} 216
217
... 227
} 228
} 229





}