⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contentlist.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 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 + -