Asp.net源码专业站
首页->博客空间->SpaceBuilder v1.1源代码>>BasicWebControls/Manage/Message/ShowMessage.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:SpaceBuilder v1.1源代码
当前文件:文件类型 SpaceBuider11/BasicWebControls/Manage/Message/ShowMessage.cs[9K,2009-6-12 11:54:33]打开代码结构图
普通视图
		            
1//------------------------------------------------------------------------------ 2// <copyright company="Tunynet"> 3// Copyright (c) Tunynet Inc. All rights reserved. 4// </copyright> 5//------------------------------------------------------------------------------ 6 7using System; 8using System.Collections.Generic; 9using System.Text; 10using SpaceBuilder.Components; 11using SpaceBuilder.Security; 12using System.Web.UI.WebControls; 13using System.Web.UI.HtmlControls; 14using SpaceBuilder.Communications.Components; 15using SpaceBuilder.Utils; 16using SpaceBuilder.Posts.Permissions; 17using SpaceBuilder.Configuration; 18using SpaceBuilder.Controls; 19using SpaceBuilder.PrivateMessages.Components; 20 21namespace SpaceBuilder.Web.Manage.Controls 22{ 23 /// <summary> 24 /// 回复消息 25 /// 暂时用InterestAdministrator,以后需要更改 26 /// </summary> 27 public class ShowMessage : ManageBaseControl 28 { 29 SBContext wlContext; 30 31 /// <summary> 32 /// 验证权限 33 /// </summary> 34 protected override void Authorize() 35 { 36 base.Authorize(); 37 38 if (!SBContext.Current.User.IsMessageAdministrator) 39 PermissionBase.RedirectOrExcpetion(SBExceptionType.AccessDenied); 40 } 41 42 protected override void OnInit(EventArgs e) 43 { 44 if (SkinName == null) 45 SkinName = "Messages/Skin-ShowMessage.ascx"; 46 47 wlContext = SBContext.Current; 48 49 base.OnInit(e); 50 } 51 52 protected override void OnLoad(EventArgs e) 53 { 54 base.OnLoad(e); 55 EnsureChildControls(); 56 57 if (!Page.IsPostBack) 58 DataBind(); 59 } 60 61 public override void DataBind() 62 { 63 base.DataBind(); 64 BindData(); 65 } 66 67 68 Child Controls 107 /// <summary> 108 /// 附加子控件 109 /// </summary> 110 protected override void AttachChildControls() 111 { 112 pageTitle = FindControl("PageTitle") as Literal; 113 114 textBoxReplyMessage = FindControl("TextBoxReplyMessage") as Editor; 115 replyButton = FindControl("ReplyButton") as LinkButton; 116 if (replyButton != null) 117 replyButton.Click += new EventHandler(ReplyButton_Click); 118 returnButton = FindControl("ReturnButton") as HyperLink; 119 speakerName = FindControl("SpeakerName") as HyperLink; 120 yourName = FindControl("YourName") as HyperLink; 121 122 subject = FindControl("Subject") as Literal; 123 124 replyRepeater = FindControl("ReplyRepeater") as Repeater; 125 if (replyRepeater != null) 126 { 127 replyRepeater.ItemDataBound += new RepeaterItemEventHandler(ReplyRepeater_ItemDataBound); 128 } 129 relativeItemSpan = FindControl("RelativeItemSpan") as HtmlControl; 130 relativeItemLabel = FindControl("RelativeItemLabel") as Label; 131 relativeItem = FindControl("RelativeItem") as HyperLink; 132 133 } 134 135 void BindData() 136 { 137 PrivateMessage message = SpaceBuilder.PrivateMessages.Components.PrivateMessages.GetPrivateMessage(wlContext.ThreadID, true); 138 if (message == null) 139 PermissionBase.RedirectOrExcpetion(SBExceptionType.AccessDenied); 140 141 if (pageTitle != null) 142 pageTitle.Text = "显示消息详细内容"; 143 this.SetPageTitle("显示消息详细内容"); 144 145 146 //设置消息为已读 147 if (message.MessageType == PrivateMessageType.System) 148 { 149 SpaceBuilder.PrivateMessages.Components.PrivateMessages.SetReadFlag((int)PrivateMessageEspecialUserID.System, message.ThreadID, true); 150 } 151 else 152 { 153 SpaceBuilder.PrivateMessages.Components.PrivateMessages.SetReadFlag((int)PrivateMessageEspecialUserID.Serve, message.ThreadID, true); 154 } 155 //设置参与者 156 if (message.SenderUserID > 0) 157 { 158 speakerName.Text = message.Sender; 159 speakerName.NavigateUrl = UserUrls.Instance().UserChannelHome(message.SenderUserID, UserDomainMenuType.Profile); 160 yourName.Text = message.Receiver; 161 } 162 else 163 { 164 speakerName.Text = message.Receiver; 165 speakerName.NavigateUrl = UserUrls.Instance().UserChannelHome(message.ReceiverUserID, UserDomainMenuType.Profile); 166 yourName.Text = message.Sender; 167 } 168 169 if (message.RelativeItemID != 0) 170 { 171 relativeItemSpan.Visible = true; 172 relativeItem.Text = message.RelativeItemName; 173 relativeItem.Attributes["target"] = "_blank"; 174 switch (message.MessageType) 175 { 176 case PrivateMessageType.Impeach: 177 relativeItemLabel.Text = "被举报人:"; 178 relativeItem.NavigateUrl = UserUrls.Instance().UserChannelHome(message.RelativeItemID, UserDomainMenuType.Profile); 179 break; 180 } 181 } 182 //返回收件箱 183 returnButton.NavigateUrl = ManagerUrls.Instance().MessageInbox(); 184 subject.Text = message.Subject; 185 List<PrivateMessagePost> pms = new List<PrivateMessagePost>(); 186 PrivateMessagePost post = new PrivateMessagePost(); 187 post.ThreadID = message.ThreadID; 188 post.Author = message.Sender; 189 post.UserID = message.SenderUserID; 190 post.PostDate = message.PostDate; 191 post.Subject = message.Subject; 192 post.Body = message.Body; 193 pms.Add(post); 194 pms.AddRange(message.Replies); 195 replyRepeater.DataSource = pms; 196 replyRepeater.DataBind(); 197 198 } 199 200 201 private void ReplyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) 202 { 203 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 204 { 205 PrivateMessagePost reply = e.Item.DataItem as PrivateMessagePost; 206 if (reply != null) 207 { 208 209 HyperLink replier = e.Item.FindControl("Replier") as HyperLink; 210 Literal replyDate = e.Item.FindControl("ReplyDate") as Literal; 211 Literal replyBody = e.Item.FindControl("ReplyBody") as Literal; 212 UserAvatar avatar = e.Item.FindControl("Avatar") as UserAvatar; 213 Image otherAvatar = e.Item.FindControl("OtherAvatar") as Image; 214 215 216 if (replier != null) 217 replier.Text = reply.Author; 218 //用户 219 if (reply.UserID > 0) 220 { 221 replier.NavigateUrl = UserUrls.Instance().UserChannelHome(reply.UserID, UserDomainMenuType.Profile); 222 avatar.UserID = reply.UserID; 223 } 224 //客服 225 else if (otherAvatar != null) 226 { 227 avatar.Visible = false; 228 otherAvatar.Visible = true; 229 if (reply.UserID == (int)PrivateMessageEspecialUserID.Serve) 230 otherAvatar.ImageUrl = "~/Images/ServeAvatar.gif"; 231 if (reply.UserID == (int)PrivateMessageEspecialUserID.System) 232 otherAvatar.ImageUrl = "~/Images/SystemAvatar.gif"; 233 } 234 if (replyDate != null) 235 replyDate.Text = Formatter.FormatFriendlyDate(reply.PostDate); 236 if (replyBody != null) 237 replyBody.Text = reply.Body; 238 } 239 } 240 } 241 242 /// <summary> 243 /// 回复消息 244 /// </summary> 245 protected void ReplyButton_Click(Object sender, EventArgs e) 246 { 247 if (!Page.IsValid) 248 return; 249 PrivateMessage pm = new PrivateMessage(); 250 pm = SpaceBuilder.PrivateMessages.Components.PrivateMessages.GetPrivateMessage(wlContext.ThreadID, true); 251 PrivateMessagePost post = new PrivateMessagePost(); 252 post.ThreadID = wlContext.ThreadID; 253 post.ParentPostID = pm.PostID; 254 post.UserID = (int)PrivateMessageEspecialUserID.Serve; 255 post.Subject = string.Format("回复:{0}", pm.Subject); 256 post.Body = textBoxReplyMessage.Text; 257 if (pm != null && post != null) 258 { 259 SpaceBuilder.PrivateMessages.Components.PrivateMessages.ReplyMessage(post, pm); 260 textBoxReplyMessage.Text = ""; 261 } 262 BindData(); 263 } 264 } 265 266} 267
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:SpaceBuilder v1.1源代码