温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.0正式版源码
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
using SpaceBuilder.Blogs.Components; 10
using SpaceBuilder.Components; 11
using SpaceBuilder.Controls; 12
using SpaceBuilder.Controls.Utils; 13
using SpaceBuilder.Security; 14
using SpaceBuilder.Posts.Permissions; 15
using SpaceBuilder.Posts.Components; 16
using SpaceBuilder.Utils; 17
using TunyNet.Data.Utils; 18
19
namespace SpaceBuilder.Blogs.Controls 20
{ 21
/// <summary> 22
/// Blog访问记录 23
/// </summary> 24
public class WeblogReferralList : WeblogThemedControl 25
{ 26
27
/// <summary> 28
/// 验证当前用户身份 29
/// </summary> 30
protected override void Authorize(Weblog w) 31
{ 32
base.Authorize(w); 33
if (CurrentUser.IsAnonymous) 34
throw new SBException(SBExceptionType.AccessDenied, "Anonymous Blog Posting Access"); 35
36
if (!CurrentUser.IsBlogAdministrator) 37
Permissions.AccessCheck(w, Permission.Post, CurrentUser); 38
} 39
40
private Repeater referralRepeater = null; 41
private Pager referralPager = null; 42
43
protected override void AttachChildControls() 44
{ 45
referralRepeater = FindControl("referralRepeater") as Repeater; 46
referralRepeater.ItemDataBound += new RepeaterItemEventHandler(referralRepeater_ItemDataBound); 47
referralPager = FindControl("referralPage") as Pager; 48
} 49
50
protected override void OnLoad(EventArgs e) 51
{ 52
base.OnLoad(e); 53
EnsureChildControls(); 54
if (!Page.IsPostBack) 55
DataBind(); 56
} 57
58
public override void DataBind() 59
{ 60
base.DataBind(); 61
Bind(); 62
} 63
64
public void Bind() 65
{ 66
int postid = -1; 67
if (Context.Request.QueryString["PostID"] != null) 68
{ 69
try 70
{ 71
postid = Int32.Parse(Context.Request.QueryString["PostID"]); 72
} 73
catch { } 74
} 75
76
Referral r = new Referral(); 77
r.SectionID = this.CurrentWeblog.SectionID; 78
r.PostID = postid; 79
80
int displayItemCount = 20; 81
82
PagingDataSet<Referral> rs = Referrals.GetReferrals(r, displayItemCount, referralPager.PageIndex); 83
84
referralRepeater.DataSource = rs.Records; 85
86
referralPager.TotalRecords = rs.TotalRecords; 87
referralPager.PageSize = displayItemCount; 88
89
referralRepeater.DataBind(); 90
91
this.SetPageTitle("访问记录"); 92
} 93
94
private void referralRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 95
{ 96
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 97
{ 98
Referral r = e.Item.DataItem as Referral; 99
if (r != null) 100
{ 101
HyperLink link = e.Item.FindControl("ReferralLink") as HyperLink; 102
Literal hits = e.Item.FindControl("ReferralHits") as Literal; 103
Literal last = e.Item.FindControl("ReferralDate") as Literal; 104
105
HyperLink sl = e.Item.FindControl("PostLink") as HyperLink; 106
107
if (r.Title.Length <= 100) 108
sl.Text = r.Title; 109
else 110
sl.Text = r.Title.Substring(0, 100); 111
112
sl.NavigateUrl = BlogUrls.Instance().ShortLink(r.PostID); 113
114
if (r.Url.Length <= 100) 115
link.Text = Context.Server.HtmlEncode(r.Url); 116
else 117
link.Text = Context.Server.HtmlEncode(r.Url.Substring(0, 100)); 118
119
link.NavigateUrl = r.Url; 120
121
hits.Text = r.Hits.ToString(); 122
last.Text = r.LastDate.ToString(DateFormat); 123
124
125
} 126
} 127
} 128
129
private string _dateFormat = null; 130
protected string DateFormat 131
{ 132
get 133
{ 134
if (_dateFormat == null) 135
_dateFormat = SBContext.Current.User.DateFormat; 136
137
return _dateFormat; 138
} 139
} 140
141
} 142
} 143





}