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 System.Web.UI.WebControls;
11
using SpaceBuilder.Utils;
12
using SpaceBuilder.Blogs.Components;
13
using SpaceBuilder.Components;
14
using System.Web.UI;
15
using TunyNet.Data.Utils;
16
using TunyNet.Utils;
17
using SpaceBuilder.Controls;
18
using System.Web.UI.HtmlControls;
19
20
namespace SpaceBuilder.Blogs.Controls
21
...{
22
public class BlogRepeater : Repeater
23
...{
24
SBContext wlContext;
25
private PagingDataSet<Weblog> pds;
26
private int i = 0;
27
28
//200709131847_yangmj_使得Tab标签页中的sortBy接收
29
protected override void OnLoad(EventArgs e)
30
...{
31
base.OnLoad(e);
32
wlContext = SBContext.Current;
33
34
if (wlContext.GetIntFromQueryString("SortBy", 1) >= 1 && (int)this.SortBy <= 1)
35
this.SortBy = (SortBlogsBy)wlContext.GetIntFromQueryString("SortBy", 1);
36
}
37
38
public void Bind()
39
...{
40
this.ItemDataBound += new RepeaterItemEventHandler(BlogRepeater_ItemDataBound);
41
BlogQuery query = new BlogQuery();
42
query.ActiveStatus = BlogActiveStatus.IsActive;
43
query.PageSize = this.DisplayItemCount;
44
query.IgnorePaging = true;
45
query.SortBy = this.SortBy;
46
query.SortOrder = this.SortOrder;
47
48
pds = Weblogs.GetWeblogs(query);
49
50
if (pds.Records.Count > 0)
51
...{
52
this.DataSource = this.pds.Records;
53
this.DataBind();
54
}
55
else
56
...{
57
this.DataSource = null;
58
this.DataBind();
59
}
60
61
}
62
63
protected override void Render(HtmlTextWriter writer)
64
...{
65
this.Bind();
66
if (this.pds.Records.Count > 0)
67
base.Render(writer);
68
}
69
70
事件#region 事件
71
72
protected void BlogRepeater_ItemDataBound(object Sender, RepeaterItemEventArgs e)
73
...{
74
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
75
...{
76
Weblog blog = (Weblog)e.Item.DataItem;
77
if (blog != null)
78
...{
79
80
HyperLink blogName = e.Item.FindControl("BlogName") as HyperLink;
81
if (blogName != null)
82
...{
83
blogName.Text = blog.SectionName;
84
85
blogName.ToolTip = string.Format("查看 {0}", blogName.Text);
86
blogName.Text = StringUtils.Trim(blogName.Text, this.DisplayLength);
87
blogName.NavigateUrl = UserUrls.Instance().BlogHome(blog.ApplicationKey);
88
blogName.Attributes["target"] = "_blank";
89
}
90
91
//Literal points = e.Item.FindControl("Points") as Literal;
92
//if (points != null)
93
// points.Text = blog.Points.ToString();
94
95
UserAvatar ownerAvater = e.Item.FindControl("OwnerAvater") as UserAvatar;
96
if (ownerAvater != null)
97
...{
98
ownerAvater.User = SpaceBuilder.Components.Users.FindUserByUsername(blog.ApplicationKey);
99
}
100
101
//HtmlGenericControl blogPhotoContainer = e.Item.FindControl("blogPhotoContainer") as HtmlGenericControl;
102
//if (blogPhotoContainer != null)
103
//{
104
// blogPhotoContainer.Attributes["class"] = "blogPhotobox serialNumber01";
105
//}
106
107
Literal blogExplain = e.Item.FindControl("BlogExplain") as Literal;
108
if (blogExplain != null)
109
...{
110
switch (this.SortBy)
111
...{
112
case SortBlogsBy.CreateDate:
113
blogExplain.Text = blog.CreateDate.ToString();
114
break;
115
case SortBlogsBy.Points:
116
blogExplain.Text = "积分:" + blog.Points.ToString();
117
break;
118
case SortBlogsBy.WeekHitTimes:
119
blogExplain.Text = "周点击:" + blog.WeekHitTimes.ToString();
120
break;
121
case SortBlogsBy.CommentCount:
122
blogExplain.Text = blog.CommentCount.ToString();
123
break;
124
case SortBlogsBy.HitTimes:
125
blogExplain.Text = blog.HitTimes.ToString();
126
break;
127
case SortBlogsBy.PostCount:
128
blogExplain.Text = blog.PostCount.ToString();
129
break;
130
}
131
}
132
i++;
133
HtmlControl authorContainerLi = e.Item.FindControl("AuthorContainerLi") as HtmlControl;
134
if (authorContainerLi != null)
135
...{
136
if (i < 10)
137
...{
138
authorContainerLi.Attributes["class"] = String.Format("serialNumber0{0}", Convert.ToString(i));
139
}
140
else
141
...{
142
authorContainerLi.Attributes["class"] = String.Format("serialNumber{0}", Convert.ToString(i));
143
}
144
145
}
146
147
}
148
149
}
150
else if (e.Item.ItemType == ListItemType.Footer)
151
...{
152
/**//*
153
HyperLink more = e.Item.FindControl("More") as HyperLink;
154
if (more != null)
155
{
156
more.Text = ResourceManager.GetString("More");
157
more.NavigateUrl = ChannelUrls.Instance().ShowRewardCategory(-1, this.RewardType, this.RewardStatus, this.MoneyType);
158
}
159
*/
160
HyperLink more = e.Item.FindControl("More") as HyperLink;
161
if (more != null)
162
...{
163
more.Text = ResourceManager.GetString("More");
164
//more.NavigateUrl=
165
switch (this.SortBy)
166
...{
167
case SortBlogsBy.CommentCount:
168
more.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.CommentCount);
169
break;
170
case SortBlogsBy.CreateDate:
171
more.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.CreateDate);
172
break;
173
case SortBlogsBy.HitTimes:
174
more.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.HitTimes);
175
break;
176
case SortBlogsBy.Points:
177
more.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.Points);
178
break;
179
case SortBlogsBy.PostCount:
180
more.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.PostCount);
181
break;
182
case SortBlogsBy.WeekHitTimes:
183
more.NavigateUrl = ChannelUrls.Instance().BlogRanks((int)SortBlogsBy.WeekHitTimes);
184
break;
185
}
186
187
}
188
}
189
190
}
191
192
#endregion
193
194
195
属性#region 属性
196
197
/**//// <summary>
198
/// Blog名称需要显示的长度
199
/// </summary>
200
private int displayLength = 14;
201
public int DisplayLength
202
...{
203
get ...{ return displayLength; }
204
set ...{ displayLength = value; }
205
}
206
207
private int displayItemCount = 10;
208
public int DisplayItemCount
209
...{
210
get ...{ return this.displayItemCount; }
211
set ...{ this.displayItemCount = value; }
212
}
213
214
private SortBlogsBy _sortBy = SortBlogsBy.CreateDate;
215
public SortBlogsBy SortBy
216
...{
217
get ...{ return this._sortBy; }
218
set ...{ this._sortBy = value; }
219
}
220
221
private SortOrder sortOrder = SortOrder.Descending;
222
public SortOrder SortOrder
223
...{
224
get ...{ return this.sortOrder; }
225
set ...{ this.sortOrder = value; }
226
}
227
228
#endregion
229
230
}
231
}
232
233
234