温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.0正式版源码
当前文件:
SpaceBuiderV10Source/BasicWebControls/Manage/Message/ReplyMessage.cs[13K,2009-6-12 11:55:08],打开代码结构图
SpaceBuiderV10Source/BasicWebControls/Manage/Message/ReplyMessage.cs[13K,2009-6-12 11:55:08],打开代码结构图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.Components; 11
using SpaceBuilder.Security; 12
using System.Web.UI.WebControls; 13
using System.Web.UI.HtmlControls; 14
using SpaceBuilder.Messages.Components; 15
using SpaceBuilder.Utils; 16
using SpaceBuilder.Posts.Permissions; 17
using SpaceBuilder.Configuration; 18
using SpaceBuilder.Controls; 19
20
namespace SpaceBuilder.Web.Manage.Controls 21
{ 22
/// <summary> 23
/// 暂时用InterestAdministrator,以后需要更改 24
/// </summary> 25
public class ReplyMessage : ManageBaseControl 26
{ 27
SBContext wlContext; 28
29
protected override void Authorize() 30
{ 31
if (!SBContext.Current.User.IsMessageAdministrator) 32
PermissionBase.RedirectOrExcpetion(SBExceptionType.AccessDenied); 33
} 34
35
protected override void OnInit(EventArgs e) 36
{ 37
if (SkinName == null) 38
SkinName = "Skin-ReplyMessage.ascx"; 39
40
wlContext = SBContext.Current; 41
42
base.OnInit(e); 43
} 44
45
protected override void OnLoad(EventArgs e) 46
{ 47
base.OnLoad(e); 48
EnsureChildControls(); 49
50
if (!Page.IsPostBack) 51
DataBind(); 52
} 53
54
public override void DataBind() 55
{ 56
base.DataBind(); 57
BindData(); 58
} 59
60
61
Child Controls 102
103
protected override void AttachChildControls() 104
{ 105
pageTitle = FindControl("PageTitle") as Literal; 106
107
toolbarAreaDiv = FindControl("toolbarAreaDiv") as HtmlGenericControl; 108
messageShowTable = FindControl("MessageShowTable") as HtmlTable; 109
replyMessageTable = FindControl("ReplyMessageTable") as HtmlTable; 110
textBoxReplyMessage = FindControl("TextBoxReplyMessage") as Editor; 111
replyButton = FindControl("ReplyButton") as LinkButton; 112
if (replyButton != null) 113
replyButton.Click += new EventHandler(ReplyButton_Click); 114
115
returnButton = FindControl("ReturnButton") as LinkButton; 116
if (returnButton != null) 117
returnButton.Click += new EventHandler(ReturnButton_Click); 118
119
//replyMessageImage = FindControl("ReplyMessageImage") as Image; 120
//replyMessageImage.ImageUrl = "~/Utility/Icons/icon_ReplyMessage.gif"; 121
122
//deleteMessageImage = FindControl("DeleteMessageImage") as Image; 123
//deleteMessageImage.ImageUrl = "/App_Themes/Default/Images/CommonIcons/icon_delete.gif"; 124
125
replyMessageButton = FindControl("ReplyMessageButton") as LinkButton; 126
replyMessageButton.Click += new EventHandler(ReplyMessageButton_Click); 127
128
deleteMessageButton = FindControl("DeleteMessageButton") as LinkButton; 129
deleteMessageButton.Click += new EventHandler(DeleteMessageButton_Click); 130
131
messageStatusTd = FindControl("MessageStatusTd") as HtmlTableCell; 132
messageStatus = FindControl("MessageStatus") as Literal; 133
134
replyCount = FindControl("ReplyCount") as Literal; 135
messageTypeName = FindControl("MessageTypeName") as Literal; 136
threadSender = FindControl("Sender") as HyperLink; 137
receiver = FindControl("Receiver") as HyperLink; 138
139
relativeUserTr = FindControl("RelativeUserTr") as HtmlTableRow; 140
relativeUserLabel = FindControl("RelativeUserLabel") as Label; 141
relativeUser = FindControl("RelativeUser") as HyperLink; 142
143
relativeItemTr = FindControl("RelativeItemTr") as HtmlTableRow; 144
relativeItemLabel = FindControl("RelativeItemLabel") as Label; 145
relativeItem = FindControl("RelativeItem") as HyperLink; 146
147
createDate = FindControl("CreateDate") as Literal; 148
subject = FindControl("Subject") as Literal; 149
threadBody = FindControl("ThreadBody") as Literal; 150
151
replyRepeater = FindControl("ReplyRepeater") as Repeater; 152
if (replyRepeater != null) 153
{ 154
replyRepeater.ItemDataBound += new RepeaterItemEventHandler(ReplyRepeater_ItemDataBound); 155
//replyRepeater.ItemCommand += new RepeaterCommandEventHandler(ReplyRepeater_ItemCommand); 156
} 157
158
} 159
160
void BindData() 161
{ 162
MessageThread message = SpaceBuilder.Messages.Components.Messages.GetMessage(wlContext.MessageID); 163
if (message == null) 164
PermissionBase.RedirectOrExcpetion(SBExceptionType.AccessDenied); 165
166
string isReply = wlContext.GetStringFromQueryString("IsReply", "false"); 167
if (bool.Parse(isReply)) 168
{ 169
toolbarAreaDiv.Visible = false; 170
messageShowTable.Visible = false; 171
replyMessageTable.Visible = true; 172
if (pageTitle != null) 173
pageTitle.Text = "回复消息"; 174
this.SetPageTitle("回复消息"); 175
} 176
else 177
{ 178
if (pageTitle != null) 179
pageTitle.Text = "显示消息详细内容"; 180
this.SetPageTitle("显示消息详细内容"); 181
} 182
183
//if ((message.MessageStatus == MessageStatus.Accept || message.MessageStatus == MessageStatus.Refuse) && (replyMessageToolbarDiv != null)) 184
// replyMessageToolbarDiv.Visible = false; 185
186
//设置消息为已读 187
if (message.TransportMode == TransportMode.Basic) 188
{ 189
if (message.MessageType == MessageType.System) 190
{ 191
if (!SpaceBuilder.Messages.Components.Messages.IsRead((int)MessageEspecialUserID.System, message)) 192
SpaceBuilder.Messages.Components.Messages.SetReadFlag((int)MessageEspecialUserID.System, true, message.ThreadID); 193
} 194
else 195
{ 196
if (!SpaceBuilder.Messages.Components.Messages.IsRead((int)MessageEspecialUserID.Serve, message)) 197
SpaceBuilder.Messages.Components.Messages.SetReadFlag((int)MessageEspecialUserID.Serve, true, message.ThreadID); 198
} 199
200
} 201
202
if (message.MessageStatus != MessageStatus.NotSet) 203
{ 204
messageStatusTd.Visible = true; 205
messageStatus.Text = SpaceBuilder.Messages.Components.Messages.GetStatusName(message.MessageStatus); 206
} 207
208
replyCount.Text = message.ReplyCount.ToString(); 209
messageTypeName.Text = Wordbook.Instance().MessageTypes[(int)message.MessageType] as string; 210
threadSender.Text = message.Sender; 211
if ((message.SenderUserID != (int)MessageEspecialUserID.System) && (message.SenderUserID != (int)MessageEspecialUserID.Serve)) 212
{ 213
threadSender.NavigateUrl = UserUrls.Instance().UserChannelHome(message.SenderUserID, UserDomainMenuType.Profile); 214
threadSender.Attributes["target"] = "_blank"; 215
} 216
217
receiver.Text = message.Receiver; 218
if ((message.TransportMode == TransportMode.Basic) && (message.ReceiverUserID != (int)MessageEspecialUserID.System) && (message.ReceiverUserID != (int)MessageEspecialUserID.Serve)) 219
{ 220
receiver.NavigateUrl = UserUrls.Instance().UserChannelHome(message.ReceiverUserID, UserDomainMenuType.Profile); 221
receiver.Attributes["target"] = "_blank"; 222
} 223
224
if (message.RelativeUserID != 0) 225
{ 226
relativeUserTr.Visible = true; 227
relativeUser.Text = message.RelativeUser; 228
if ((message.TransportMode == TransportMode.Basic) && (message.RelativeUserID != (int)MessageEspecialUserID.System) && (message.RelativeUserID != (int)MessageEspecialUserID.Serve)) 229
{ 230
relativeUser.NavigateUrl = UserUrls.Instance().UserChannelHome(message.RelativeUserID, UserDomainMenuType.Profile); 231
relativeUser.Attributes["target"] = "_blank"; 232
} 233
} 234
235
switch (message.MessageType) 236
{ 237
case MessageType.Complain: 238
relativeUserLabel.Text = "被投诉人:"; 239
break; 240
} 241
242
if (message.RelativeItemID != 0) 243
{ 244
relativeItemTr.Visible = true; 245
relativeItem.Text = message.RelativeItemName; 246
relativeItem.Attributes["target"] = "_blank"; 247
switch (message.MessageType) 248
{ 249
case MessageType.Impeach: 250
relativeItemLabel.Text = "被举报人:"; 251
relativeItem.NavigateUrl = UserUrls.Instance().UserChannelHome(message.RelativeItemID, UserDomainMenuType.Profile); 252
break; 253
} 254
} 255
256
createDate.Text = Formatter.FormatDatePost(message.CreateDate); 257
subject.Text = message.Subject; 258
threadBody.Text = message.Body; 259
260
if (message.HasReplies) 261
{ 262
replyRepeater.DataSource = message.Replies; 263
replyRepeater.DataBind(); 264
} 265
else 266
replyRepeater.Visible = false; 267
} 268
269
private void ReplyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 270
{ 271
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 272
{ 273
MessageReply reply = e.Item.DataItem as MessageReply; 274
if (reply != null) 275
{ 276
277
HyperLink replier = e.Item.FindControl("Replier") as HyperLink; 278
Literal replyDate = e.Item.FindControl("ReplyDate") as Literal; 279
Literal replyBody = e.Item.FindControl("ReplyBody") as Literal; 280
281
replier.Text = reply.Replier; 282
if (reply.ReplierUserID > 0) 283
{ 284
replier.NavigateUrl = UserUrls.Instance().UserChannelHome(reply.ReplierUserID, UserDomainMenuType.Profile); 285
} 286
287
replyDate.Text = Formatter.FormatDatePost(reply.CreateDate); 288
replyBody.Text = reply.Body; 289
} 290
} 291
} 292
293
/// <summary> 294
/// 回复消息 295
/// </summary> 296
protected void ReplyMessageButton_Click(Object sender, EventArgs e) 297
{ 298
Context.Response.Redirect(ManagerUrls.Instance().ReplyMessage(wlContext.MessageID), true); 299
} 300
301
/// <summary> 302
/// 删除消息 303
/// </summary> 304
protected void DeleteMessageButton_Click(Object sender, EventArgs e) 305
{ 306
int threadID = wlContext.MessageID; 307
MessageThread mt = SpaceBuilder.Messages.Components.Messages.GetMessage(threadID); 308
if (mt.MessageType == MessageType.System) 309
SpaceBuilder.Messages.Components.Messages.DeleteMessage((int)MessageEspecialUserID.System, mt, true); 310
else 311
SpaceBuilder.Messages.Components.Messages.DeleteMessage((int)MessageEspecialUserID.Serve, mt, true); 312
313
Context.Response.Redirect(ManagerUrls.Instance().ManageMessages((int)mt.MessageType), true); 314
} 315
316
/// <summary> 317
/// 回复消息 318
/// </summary> 319
protected void ReplyButton_Click(Object sender, EventArgs e) 320
{ 321
if (!Page.IsValid) 322
return; 323
324
MessageReply mr = new MessageReply(); 325
mr.ThreadID = wlContext.MessageID; 326
mr.ReplierUserID = (int)MessageEspecialUserID.Serve; 327
mr.Replier = SiteSettingsManager.GetSiteSettings().SiteName; 328
mr.Body = textBoxReplyMessage.Text; 329
SpaceBuilder.Messages.Components.Messages.ReplyMessage(mr); 330
331
Context.Response.Redirect(ManagerUrls.Instance().ShowMessage(mr.ThreadID), true); 332
} 333
334
/// <summary> 335
/// 回复消息 336
/// </summary> 337
protected void ReturnButton_Click(Object sender, EventArgs e) 338
{ 339
Context.Response.Redirect(ManagerUrls.Instance().ShowMessage(wlContext.MessageID), true); 340
} 341
342
} 343
344
} 345






}