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

📄 messagepanel.cs

📁 基于.Net环境下c#实现的国人自己的Blog平台,基于.Text的核心技术,但做了汉化以及改写了一部分的核心代码,值得研究学习
💻 CS
字号:
#region Disclaimer/Info

///////////////////////////////////////////////////////////////////////////////////////////////////
// .Text WebLog
// 
// .Text is an open source weblog system started by Scott Watermasysk. 
// Blog: http://ScottWater.com/blog 
// RSS: http://scottwater.com/blog/rss.aspx
// Email: Dottext@ScottWater.com
//
// For updated news and information please visit http://scottwater.com/dottext and subscribe to 
// the Rss feed @ http://scottwater.com/dottext/rss.aspx
//
// On its release (on or about August 1, 2003) this application is licensed under the BSD. However, I reserve the 
// right to change or modify this at any time. The most recent and up to date license can always be fount at:
// http://ScottWater.com/License.txt
// 
// Please direct all code related questions to:
// GotDotNet Workspace: http://www.gotdotnet.com/Community/Workspaces/workspace.aspx?id=e99fccb3-1a8c-42b5-90ee-348f6b77c407
// Yahoo Group http://groups.yahoo.com/group/DotText/
// 
///////////////////////////////////////////////////////////////////////////////////////////////////

#endregion

using System;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Dottext.Web.Admin.WebUI
{
	// TODO: add clear link (display: none;) plus requried js

	[ToolboxData("<{0}:MessagePanel runat=\"server\"></{0}:MessagePanel>")]
	public class MessagePanel : Panel, INamingContainer
	{
		private const string VSKEY_MESSAGE = "消息";
		private const string VSKEY_ERROR = "错误";

		private bool _showMessagePanel;
		private bool _showErrorPanel;

		private string _messageCssClass;
		private string _errorCssClass;
		private string _messageIconUrl;
		private string _errorIconUrl;

		public MessagePanel()
		{
			ViewState[VSKEY_MESSAGE] = String.Empty;
			ViewState[VSKEY_ERROR] = String.Empty;
		}

		#region Accessors

		public string Message
		{
			get { return (string) ViewState[VSKEY_MESSAGE]; }
			set { ViewState[VSKEY_MESSAGE] = value; }
		}

		public string Error
		{
			get { return (string) ViewState[VSKEY_ERROR]; }
			set { ViewState[VSKEY_ERROR] = value; }
		}

		public bool ShowMessagePanel
		{
			get { return _showMessagePanel; }
			set { _showMessagePanel = value; }
		}

		public bool ShowErrorPanel
		{
			get { return _showErrorPanel; }
			set { _showErrorPanel = value; }
		}

		public string MessageCssClass
		{
			get
			{
				if (this._messageCssClass == null)
					this._messageCssClass = "MessagePanel";
				return _messageCssClass;
			}
			set { _messageCssClass = value; }
		}

		public string ErrorCssClass
		{
			get
			{
				if (this._errorCssClass == null)
					this._errorCssClass = "ErrorPanel";
				return _errorCssClass;
			}
			set { _errorCssClass = value; }
		}

		public string MessageIconUrl
		{
			get
			{
				if (_messageIconUrl == null)
					_messageIconUrl = "~/admin/resources/ico_info.gif";
				return _messageIconUrl;
			}
			set { _messageIconUrl = value; }
		}

		public string ErrorIconUrl
		{
			get
			{
				if (_errorIconUrl == null)
					_errorIconUrl = "~/admin/resources/ico_critical.gif";
				return _errorIconUrl;
			}
			set { _errorIconUrl = value; }
		}

		#endregion

		protected override void OnInit(EventArgs e)
		{
			base.OnInit(e);
		}

		protected override void Render(HtmlTextWriter writer)
		{
			if (null != Page)
				Page.VerifyRenderingInServerForm(this);

			if (this.ShowErrorPanel)
			{
				Panel errorPanel = BuildPanel(this.Error, this.ErrorCssClass,
				                              Utilities.AbsolutePath(this.ErrorIconUrl));
				this.Controls.Add(errorPanel);
			}

			if (this.ShowMessagePanel)
			{
				Panel messagePanel = BuildPanel(this.Message, this.MessageCssClass,
				                                Utilities.AbsolutePath(this.MessageIconUrl));
				this.Controls.Add(messagePanel);
			}

			base.Render(writer);
		}

		protected virtual Panel BuildPanel(string messageText, string cssClass, string imageUrl)
		{
			Panel result = new Panel();

			if (null != imageUrl && cssClass.Length > 0)
				result.CssClass = cssClass;

			if (null != imageUrl && imageUrl.Length > 0)
			{
				Image image = new Image();
				image.Attributes.Add("src", imageUrl);
				result.Controls.Add(image);
			}

			Panel message = new Panel();
			message.Controls.Add(new LiteralControl(messageText));
			result.Controls.Add(message);

			return result;
		}

		public void ShowMessage(string message)
		{
			ShowMessage(message, true);
		}

		public void ShowMessage(string message, bool clearExistingMessages)
		{
			if (clearExistingMessages)
				this.Message = message;
			else
				this.Message += " " + message;

			this.ShowMessagePanel = true;
			this.Visible = true;
		}

		public void ShowError(string message)
		{
			ShowError(message, true);
		}

		public void ShowError(string message, bool clearExistingMessages)
		{
			if (clearExistingMessages)
				this.Error = message;
			else
				this.Error += " " + message;

			this.ShowErrorPanel = true;
			this.Visible = true;
		}

		public void Clear()
		{
			this.Visible = false;
		}
	}
}

⌨️ 快捷键说明

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