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

📄 entrylist.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.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 + -