📄 contentlist.cs
字号:
//------------------------------------------------------------------------------
// <copyright company="Telligent Systems">
// Copyright (c) Telligent Systems Corporation. All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Web.UI.WebControls;
using CommunityServer.Blogs.Components;
using CommunityServer.Components;
using CommunityServer.Controls;
namespace CommunityServer.Blogs.Controls
{
public class ContentList : WeblogAdminTemplatedWebControl
{
private Repeater PostListRepeater;
private Button CategoryButton;
private Button CreateButton;
private Pager ContentPager;
private BlogPostType _currentPostType = BlogPostType.Post;
/// <summary>
/// Property BlogPostType (BlogPostType)
/// </summary>
public BlogPostType BlogPostType
{
get { return this._currentPostType; }
set { this._currentPostType = value; }
}
public ContentList()
{
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if ( !Page.IsPostBack || !EnableViewState )
{
DataBind();
}
}
public override void DataBind()
{
base.DataBind();
BindData();
}
protected override void AttachChildControls()
{
CreateButton = FindControl("CreateButton") as Button;
CategoryButton = FindControl("CategoryButton") as Button;
CreateButton.Click +=new EventHandler(EditButton_Click);
CreateButton.CommandName = "Create";
CategoryButton.Text = ResourceManager.GetString("Blog_Edit_Categories");
CategoryButton.Click +=new EventHandler(EditButton_Click);
CategoryButton.CommandName = "Categories";
ContentPager = FindControl("ContentPager") as Pager;
switch(BlogPostType)
{
case BlogPostType.Article:
CreateButton.Text = ResourceManager.GetString("Blog_Edit_CreatArticle");
break;
case BlogPostType.Post:
CreateButton.Text = ResourceManager.GetString("Blog_Edit_CreatePost");
break;
default:
throw new CSException(CSExceptionType.AccessDenied,"Edit Post or Articles Only");
}
PostListRepeater = FindControl("PostListRepeater") as Repeater;
if(PostListRepeater != null)
{
PostListRepeater.ItemDataBound +=new RepeaterItemEventHandler(PostListRepeater_ItemDataBound);
PostListRepeater.ItemCommand +=new RepeaterCommandEventHandler(PostListRepeater_ItemCommand);
}
}
void BindData()
{
BlogThreadQuery query = new BlogThreadQuery();
query.BlogID = this.CurrentWeblog.SectionID;
query.BlogPostType = BlogPostType;
query.BlogThreadType = BlogThreadType.Recent;
query.IncludeCategories = false;
query.IsPublished = false;
query.PageIndex = ContentPager.PageIndex;
query.PageSize = 20; //add paging :)
query.SortOrder = SortOrder.Descending;
query.SortBy = BlogThreadSortBy.MostRecent;
ThreadSet threads = WeblogPosts.GetBlogThreads(query,false);
PostListRepeater.DataSource = threads.Threads;
PostListRepeater.DataBind();
if(threads.Threads != null)
{
ContentPager.TotalRecords = threads.TotalRecords;
ContentPager.PageSize = query.PageSize;
}
}
private void PostListRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
WeblogPost wet = e.Item.DataItem as WeblogPost;
if(wet != null)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
HyperLink litTitle = e.Item.FindControl("Title") as HyperLink;
if(litTitle != null)
{
litTitle.Text = Context.Server.HtmlEncode(wet.Subject);
litTitle.NavigateUrl = BlogUrls.Instance().PostEditor(CurrentWeblog.ApplicationKey,wet.PostID);
litTitle.ToolTip = string.Format("{0}:{1}",ResourceManager.GetString("Edit"),wet.Subject);
}
Literal litPubDate = e.Item.FindControl("PubDate") as Literal;
if(litPubDate != null)
litPubDate.Text = wet.BloggerTime.ToString("f");
Literal litPublishStatus = e.Item.FindControl("PublishStatus") as Literal;
if(litPublishStatus != null)
litPublishStatus.Text = wet.IsApproved.ToString();
Literal litReads = e.Item.FindControl("Reads") as Literal;
if(litReads != null)
litReads.Text = wet.Views.ToString();
Literal litAggReads = e.Item.FindControl("AggReads") as Literal;
if(litAggReads != null)
litAggReads.Text = wet.AggViews.ToString();
Literal litComments = e.Item.FindControl("Comments") as Literal;
if(litComments != null)
litComments.Text = wet.Replies.ToString();
LinkButton EditButton = e.Item.FindControl( "Edit" ) as LinkButton;
if(EditButton != null)
{
EditButton.CommandArgument = wet.PostID.ToString();
EditButton.Text = ResourceManager.GetString( "Edit" );
}
LinkButton DeleteButton = e.Item.FindControl( "Delete" ) as LinkButton;
if(DeleteButton != null)
{
DeleteButton.CommandArgument = wet.PostID.ToString();
DeleteButton.Attributes["onclick"] = "if ( !confirm('" + ResourceManager.GetString("BlogPost_DeleteVerify").Replace("'", @"\'") + "') ) {return false; } ";
DeleteButton.Text = ResourceManager.GetString( "Delete" );
}
HyperLink referrals = e.Item.FindControl("ReferralLink") as HyperLink;
if(referrals != null)
{
referrals.NavigateUrl = BlogUrls.Instance().ReferralToPost(this.CurrentWeblog.ApplicationKey,wet.PostID);
referrals.Text = ResourceManager.GetString("Referrals_View");
}
HyperLink viewLink = e.Item.FindControl("ViewLink") as HyperLink;
if(referrals != null)
{
viewLink.NavigateUrl = BlogUrls.Instance().Post(wet,CurrentWeblog);
viewLink.Text = ResourceManager.GetString("View");
viewLink.ToolTip = string.Format("{0}:{1}",ResourceManager.GetString("View"),wet.Subject);
}
}
else if(e.Item.ItemType == ListItemType.Footer)
{
Button CreateButton = e.Item.FindControl( "Create" ) as Button;
if(CreateButton != null)
{
CreateButton.Text = ResourceManager.GetString( "Create" );
}
}
}
}
private void EditButton_Click(object sender, EventArgs e)
{
Button b = sender as Button;
if(b != null)
{
string url = "#";
if(b.CommandName == "Create")
{
url = BlogUrls.Instance().PostEditor(CurrentWeblog.ApplicationKey,BlogPostType);
}
else if(b.CommandName == "Categories")
{
if(BlogPostType == BlogPostType.Post)
{
url= BlogUrls.Instance().AdminCategories(this.CurrentWeblog.ApplicationKey,CategoryType.BlogPost);
}
else if(BlogPostType == BlogPostType.Article)
{
url = BlogUrls.Instance().AdminCategories(this.CurrentWeblog.ApplicationKey,CategoryType.BlogArticle);
}
}
Context.Response.Redirect(url);
Context.Response.End();
}
}
private void PostListRepeater_ItemCommand(object source, RepeaterCommandEventArgs e)
{
switch(e.CommandName)
{
case "Edit":
Context.Response.Redirect(BlogUrls.Instance().PostEditor(CurrentWeblog.ApplicationKey,int.Parse((string)e.CommandArgument)));
Context.Response.End();
break;
case "Delete":
WeblogPosts.Delete(CurrentWeblog.SectionID, int.Parse((string)e.CommandArgument), _currentPostType, CSContext.Current.User.UserID);
BindData();
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -