📄 entrylist.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Web.UI.WebControls;
using CommunityServer.Components;
using CommunityServer.Blogs.Components;
using CommunityServer.Controls;
namespace CommunityServer.Blogs.Controls
{
/// <summary>
/// Summary description for EntryList.
/// </summary>
public class EntryList : WeblogThemedControl
{
private Repeater entryItems = null;
private Pager listPager = null;
public event System.EventHandler PagerIndexChange;
public EntryList()
{
}
public override void DataBind()
{
base.DataBind ();
if(DataSource != null)
{
entryItems.DataSource = DataSource;
entryItems.DataBind();
listPager.TotalRecords = this.TotalRecords;
listPager.PageIndex = this.PageIndex;
listPager.PageSize = this.PageSize;
listPager.Visible = (EnablePaging && (listPager.TotalRecords > listPager.PageSize));
}
}
private int _totalRecords;
/// <summary>
/// Property TotalRecords (int)
/// </summary>
public int TotalRecords
{
get { return this._totalRecords; }
set { this._totalRecords = value; }
}
private int _pageIndex;
/// <summary>
/// Property PageIndex (int)
/// </summary>
public int PageIndex
{
get { return this._pageIndex; }
set { this._pageIndex = value; }
}
/// <summary>
/// Gets or sets if the results are paged.
/// </summary>
[
System.ComponentModel.DefaultValue( false ),
]
public virtual Boolean EnablePaging
{
get
{
Object state = ViewState["EnablePaging"];
if ( state != null )
{
return (Boolean)state;
}
return false;
}
set
{
ViewState["EnablePaging"] = value;
}
}
/// <summary>
/// Gets or sets the size of a page when paging is enabled.
/// </summary>
[
System.ComponentModel.DefaultValue( 15 ),
]
public virtual Int32 PageSize
{
get
{
Object state = ViewState[ "PageSize" ];
if ( state != null )
{
return (Int32)state;
}
return 15;
}
set
{
ViewState[ "PageSize" ] = value;
}
}
private object _dataSource;
/// <summary>
/// Property DataSource (object)
/// </summary>
public object DataSource
{
get { return this._dataSource; }
set { this._dataSource = value; }
}
private bool _DisplayExcerpts;
public bool DisplayExcerpts
{
get{return _DisplayExcerpts;}
set{_DisplayExcerpts = value;}
}
protected override void AttachChildControls()
{
entryItems = FindControl( "EntryItems" ) as Repeater;
listPager = FindControl( "listPager" ) as Pager;
entryItems.ItemDataBound += new RepeaterItemEventHandler(entryItems_ItemDataBound);
}
private void entryItems_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
WeblogPost entry = e.Item.DataItem as WeblogPost;
if(entry != null)
{
HyperLink link = e.Item.FindControl("PermaLink") as HyperLink;
if(link != null)
{
link.Text = entry.BloggerTime.ToString(ThemeConfig.DateFormat);
link.NavigateUrl = BlogUrls.Instance().Post(entry,CurrentWeblog);
}
link = e.Item.FindControl("postTitle") as HyperLink;
if(link != null)
{
link.NavigateUrl = BlogUrls.Instance().Post(entry,CurrentWeblog);
link.Text = entry.Subject;
}
Literal Body = e.Item.FindControl( "Body" ) as Literal;
HyperLink readMore = e.Item.FindControl("ReadMoreLink") as HyperLink;
if(Body != null)
{
if(DisplayExcerpts)
{
if(entry.HasExcerpt)
Body.Text = entry.Excerpt;
else
Body.Text = Formatter.RemoveHtml(entry.FormattedBody,250);
if(readMore != null)
{
readMore.Visible = true;
readMore.NavigateUrl = BlogUrls.Instance().Post(entry,CurrentWeblog);
readMore.Text = ResourceManager.GetString("Weblog_EntryList_ReadMore");
}
}
else
{
if(readMore != null)
readMore.Visible = false;
Body.Text = entry.FormattedBody;
}
}
link = e.Item.FindControl( "CommentsLink" ) as HyperLink;
ResourceControl commentDesc = e.Item.FindControl("CommentDesc") as ResourceControl;
if(link != null)
{
if((CurrentWeblog.EnableComments && !entry.IsLocked) || entry.Replies > 0)
{
link.Text = string.Format(ResourceManager.GetString("Weblog_EntryList_Comments"),entry.Replies);
link.NavigateUrl = BlogUrls.Instance().Post(entry,CurrentWeblog) + "#comments";
commentDesc.ResourceName = "Weblog_EntryList_With";
}
else
{
commentDesc.ResourceName = "Weblog_EntryList_CommentsOff";
link.Visible = false;
}
}
link = e.Item.FindControl("EditLink") as HyperLink;
if(link != null)
{
if(Permissions.ValidatePermissions(CurrentWeblog,Permission.Post,CurrentUser))
{
link.Visible = true;
link.NavigateUrl = BlogUrls.Instance().PostEditor(CurrentWeblog.ApplicationKey,entry.PostID);
link.Text = string.Format("[{0}]",ResourceManager.GetString("Edit"));
link.ToolTip = ResourceManager.GetString("Weblog_EntryList_Edit");
}
else
link.Visible = false;
}
RatingImageButton rib = e.Item.FindControl("Ratings") as RatingImageButton;
if(entry.EnableRatings)
{
rib.Visible = true;
rib.Rating = entry.Rating;
rib.TotalRatings = entry.TotalRatings;
}
else
{
rib.Visible = false;
}
link = e.Item.FindControl("AuthorLink") as HyperLink;
if(link != null)
{
link.Text = entry.Username;
link.NavigateUrl = Globals.GetSiteUrls().UserProfile(entry.AuthorID);
}
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -