📄 postflatpreview.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Text;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using CommunityServer.Components;
using CommunityServer.Controls;
using CommunityServer.Discussions.Components;
using CommunityServer.Discussions.Controls.PostDisplay;
namespace CommunityServer.Discussions.Controls
{
public class PostFlatPreview : TemplatedWebControl
{
protected override void OnInit(EventArgs e)
{
if (SkinName == null)
ExternalSkinFileName = "View-PostFlatPreview.ascx";
else
ExternalSkinFileName = SkinName;
base.OnInit(e);
}
#region Child Controls
Repeater postRepeater;
#endregion
#region Properties
public bool LinkToParent
{
get
{
Object state = ViewState["LinkToParent"];
if (state != null)
return (Boolean)state;
return false;
}
set { ViewState["LinkToParent"] = value; }
}
#endregion
#region Skin
protected override void AttachChildControls()
{
postRepeater = (Repeater)FindControl( "PostRepeater" );
InitializeChildControls();
}
public object DataSource
{
get
{
EnsureChildControls();
return postRepeater.DataSource;
}
set
{
EnsureChildControls();
postRepeater.DataSource = value;
}
}
private void InitializeChildControls()
{
postRepeater.ItemDataBound += new RepeaterItemEventHandler(postRepeater_ItemDataBound);
}
#endregion
#region DataBinding
public override void DataBind()
{
base.DataBind ();
postRepeater.DataBind();
}
private void postRepeater_ItemDataBound(Object sender, RepeaterItemEventArgs e)
{
if( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem )
{
ForumPost post = e.Item.DataItem as ForumPost;
User user = post.User;
switch ( e.Item.ItemType )
{
case ListItemType.Item:
case ListItemType.AlternatingItem:
UserOnlineStatus onlineStatus = (UserOnlineStatus)e.Item.FindControl( "OnlineStatus" );
UserAvatar avatar = (UserAvatar)e.Item.FindControl( "Avatar" );
Literal username = (Literal)e.Item.FindControl( "Username" );
PostIcons postIcon = (PostIcons)e.Item.FindControl( "PostIcon" );
RoleIcons roleIcon = (RoleIcons)e.Item.FindControl( "RoleIcon" );
UserAttribute joinedAttribute = (UserAttribute)e.Item.FindControl( "JoinedAttribute" );
UserAttribute locationAttribute = (UserAttribute)e.Item.FindControl( "LocationAttribute" );
UserAttribute postsAttribute = (UserAttribute)e.Item.FindControl( "PostsAttribute" );
UserAttribute pointsAttribute = (UserAttribute)e.Item.FindControl( "PointsAttribute" );
Literal emoticon = (Literal)e.Item.FindControl( "Emoticon" );
HyperLink subject = (HyperLink)e.Item.FindControl( "Subject" );
TextPost textPost = (TextPost)e.Item.FindControl( "TextPost" );
HtmlAnchor postAnchor = (HtmlAnchor)e.Item.FindControl( "PostAnchor" );
Literal postPoints = (Literal)e.Item.FindControl( "PostPoints" );
// Notice the following controls that the user should be seen as anonymous
//
bool showUserAsAnonymous = (post.IsAnonymousPost);
if (onlineStatus != null)
{
onlineStatus.User = user;
onlineStatus.IsCloakedUser = showUserAsAnonymous;
}
if (avatar != null)
{
avatar.User = user;
avatar.IsCloakedUser = showUserAsAnonymous;
}
if (username != null)
{
if (post.PostShouldBeIgnored)
{
username.Text = Formatter.FormatUsername ( user.UserID, post.Username, true, true, true );
}
else
{
username.Text = Formatter.FormatUsername ( user.UserID, post.Username, showUserAsAnonymous, true, false );
}
}
if (postIcon != null)
{
postIcon.User = user;
postIcon.IsCloakedUser = showUserAsAnonymous;
}
if (roleIcon != null)
{
roleIcon.User = user;
roleIcon.IsCloakedUser = showUserAsAnonymous;
}
if (joinedAttribute != null)
{
joinedAttribute.User = user;
joinedAttribute.IsCloakedUser = showUserAsAnonymous;
}
if (locationAttribute != null)
{
locationAttribute.User = user;
locationAttribute.IsCloakedUser = showUserAsAnonymous;
}
if (postsAttribute != null)
{
postsAttribute.User = user;
postsAttribute.IsCloakedUser = showUserAsAnonymous;
}
if (pointsAttribute != null)
{
pointsAttribute.User = user;
pointsAttribute.IsCloakedUser = showUserAsAnonymous;
}
if (emoticon != null)
emoticon.Text = Formatter.GetEmotionMarkup( post.EmoticonID );
if (subject != null)
subject.Text = post.Subject;
if ((subject != null) && (LinkToParent) && (post.PostLevel != 1))
subject.NavigateUrl = Globals.GetSiteUrls().Post(post.ParentID);
if (textPost != null)
{
textPost.Post = post;
textPost.DataBind();
}
if (postAnchor != null)
postAnchor.Name = post.PostID.ToString();
if (postPoints != null)
postPoints.Text = Formatter.PostPoints( post );
break;
}
}
}
#endregion
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -