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

📄 aggregatelist.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
{
	/// <summary>
	/// Summary description for AggregateList.
	/// </summary>
	public class AggregateList : WeblogBaseTemplatedWebControl
	{
		public AggregateList()
		{
			//
			// TODO: Add constructor logic here
			//
		}

		public event EventHandler PagerIndexChanged;

		Repeater posts = null;
		Pager postPager = null;
		private WeblogConfiguration config = WeblogConfiguration.Instance();

		/// <summary>
		/// Property TotalRecords (int)
		/// </summary>
		public int TotalRecords
		{
			get
			{
				this.EnsureChildControls();
				return postPager.TotalRecords;
			}
			set
			{
				this.EnsureChildControls();
				this.postPager.TotalRecords = value;
			}
		}

		/// <summary>
		/// Property PageIndex (int)
		/// </summary>
		public int PageIndex
		{
			get
			{
				this.EnsureChildControls();
				return postPager.PageIndex;
			}
			set
			{
				this.EnsureChildControls();
				this.postPager.PageIndex = value;
			}
		}

		/// <summary>
		/// Property PageSize (int)
		/// </summary>
		public int PageSize
		{
			get
			{
				this.EnsureChildControls();
				return postPager.PageSize;
			}
			set
			{
				this.EnsureChildControls();
				this.postPager.PageSize = value;
			}
		}

		private bool _enablePager = true;
		public bool EnablePager
		{
			get
			{
				//this.EnsureChildControls();
				//return postPager.Enabled;
				return _enablePager;
			}
			set
			{
				//this.EnsureChildControls();
				//postPager.Enabled = value;
				_enablePager = value;
			}
		}

		private object _dataSource;

		/// <summary>
		/// Property DataSource (object)
		/// </summary>
		public object DataSource
		{
			get { return this._dataSource; }
			set { this._dataSource = value; }
		}

		public override void DataBind()
		{
			base.DataBind();
			if (DataSource != null)
			{
				posts.DataSource = DataSource;
				posts.DataBind();
			}
		}


		protected override void AttachChildControls()
		{
			posts = FindControl("Posts") as Repeater;
			postPager = FindControl("PostsPager") as Pager;

			if(EnablePager)
				postPager.Visible = true;
			else
				postPager.Visible = false;

			posts.ItemDataBound += new RepeaterItemEventHandler(posts_ItemDataBound);
		}

		private void postPager_IndexChanged(object sender, EventArgs e)
		{
			if (PagerIndexChanged != null)
				PagerIndexChanged(sender, e);
		}


		private string FormatDate (DateTime date) 
		{
			CSContext context = CSContext.Current;
			DateTime serverDateTime;

			// Set the time to the user's time
			if (context.IsAuthenticated) {
				serverDateTime = DateTime.Now.AddHours(context.User.Profile.Timezone - context.SiteSettings.TimezoneOffset);
			} else {
				serverDateTime = DateTime.Now;
			}

			date = context.User.GetTimezone(date);

			if (date > serverDateTime.AddHours(-24) ) {
				int minutes = (serverDateTime - date).Minutes;
				int hours = (serverDateTime - date).Hours;

				if (date > serverDateTime.AddHours(-1) ) {
					if (minutes < 2)
						return string.Format(ResourceManager.GetString("aggblog_minuteago"), minutes);

					return string.Format(ResourceManager.GetString("aggblog_minutesago"), minutes);
				} else {
					if (hours < 2)
						return string.Format(ResourceManager.GetString("aggblog_hourago"), hours, minutes);

					return string.Format(ResourceManager.GetString("aggblog_hoursago"), hours, minutes);
				}

			} else {
				return date.ToString("MMMM dd, yyyy");
			}
		}

		private void posts_ItemDataBound(object sender, RepeaterItemEventArgs e)
		{
			if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
			{
				WeblogPost post = e.Item.DataItem as WeblogPost;
				if (post != null)
				{
					HyperLink titleLink = e.Item.FindControl("TitleLink") as HyperLink;
					titleLink.Text = post.Subject;
					titleLink.NavigateUrl = BlogUrls.Instance().Post(post);

					Literal body = e.Item.FindControl("Body") as Literal;
					if (config.TruncateAggregatePost)
						body.Text = Formatter.RemoveHtml(post.FormattedBody, config.AggregatePostSize) + "...";
					else
						body.Text = post.FormattedBody;

                    HyperLink Blog = e.Item.FindControl("Blog") as HyperLink;
                    Blog.NavigateUrl = BlogUrls.Instance().HomePage(post.Section.ApplicationKey);
                    switch (config.PostedbyDisplay)
                    {
                        case BlogPostedByDisplayType.Off: 
                        { 
                            Blog.Visible = false;
                            // Make "by" text non-visible
                            ResourceControl byResource = e.Item.FindControl("PostByResource") as ResourceControl;
                            if (byResource != null)
                                byResource.Visible = false;
                            break;
                        }
                        case BlogPostedByDisplayType.UserName: 
                        { 
							
                            Blog.Text = Users.GetUser(post.AuthorID, false).DisplayName;
                            break;
                        }
                        case BlogPostedByDisplayType.Weblog: 
                        { 
							Blog.Text = Users.GetUser(post.AuthorID, false).DisplayName;
                            break;
                        }
                    }

					Literal Posted = e.Item.FindControl("Posted") as Literal;
					Posted.Text = FormatDate(post.BloggerTime);

					HyperLink linkImage = e.Item.FindControl("linkImage") as HyperLink;
					if (linkImage != null)
					{
						linkImage.NavigateUrl = titleLink.NavigateUrl;
						linkImage.ToolTip = post.Subject;
					}


				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -