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

📄 datepicker.cs

📁 用C#编写的一个新的日期显示器
💻 CS
字号:
using System;
using System.ComponentModel;
using System.Reflection;
using System.Resources;
using System.Web.UI;
using System.Web.UI.WebControls;


namespace Sorke.Web.UI.WebControls
{
	public enum ShowFormatEnum
	{
		NoLimit = 0,

		Range = 1,

		AfterToday = 2,

		AfterDays = 3,

	}
	public enum DateLanguage
	{
		Chinese=0,

		English=1,
	}

	[DesignerAttribute("Sorke.Web.UI.WebControls.DatePickerDesigner,Sorke.Web.UI.WebControls")]
	[ToolboxDataAttribute("<{0}:DatePicker runat=server></{0}:DatePicker>")]
	[DefaultPropertyAttribute("Date")]
	public class DatePicker : WebControl, INamingContainer
	{
		
		private ResourceManager resources;

		//private bool _rang;

		private DateTime _mindate;

		private DateTime _maxdate;

		private ShowFormatEnum _showformat;

		private int _afterdays;

		private string g_strText = "";
		private bool g_bReadOnly = true;
		private string g_strImageUrl = "images/DatePicker.gif";
		private bool _hasdropdown = true ;
		private string _css=null;
		private string _dateformat="YYYY-MM-DD";
		private DateLanguage _language=DateLanguage.Chinese;
		private string _upimage="images/up.gif";
		private string _downimage="images/down.gif";
		private TextBox g_TextBox = new TextBox();
		public DatePicker()
		{
			base.PreRender += new EventHandler(this.PreRender);
			
		}
		[CategoryAttribute("Data")]
		[DefaultValueAttribute("")]
		[BrowsableAttribute(false)]
		[DescriptionAttribute("返回日期型数据")]
		public DateTime Date
		{
			get
			{
				try
				{
					DateTime.Parse(Text);
					return DateTime.Parse(Text);
				}
				catch (Exception e)
				{
					throw new Exception(String.Concat("日期错误!", e.ToString()));
				}
			}
			set
			{
				Text=value.ToShortDateString();
			}
		}
		public DateLanguage Language
		{
			get
			{
				return _language;
			}
			set
			{
				_language=value;
			}
		}
		public string UpImage
		{
			get
			{
				return _upimage;
			}
			set
			{
				_upimage=value;
			}
		}
		public string DownImage
		{
			get
			{
				return _downimage;
			}
			set
			{
				_downimage=value;
			}
		}
		public string SetDateFormat
		{
			get
			{
				return _dateformat;
			}
			set
			{
				_dateformat=value;
			}
		}
		public string CSS
		{
			get
			{
				return _css;
			}
			set
			{
				_css=value;
			}
		}
		[CategoryAttribute("Data")]
		[DefaultValueAttribute("")]
		[BrowsableAttribute(true)]
		[DescriptionAttribute("是否以下拉列表方式显示月份选择")]
		public bool HasDropDown
		{
			get
			{
				return _hasdropdown;
			}
			set
			{
				_hasdropdown=value;
			}
		}
		[BrowsableAttribute(true)]
		[DescriptionAttribute("日期字符串,格式为2004-01-01")]
		[DefaultValueAttribute("")]
		[CategoryAttribute("Data")]
		public string Text
		{
			get
			{
				return g_strText;
			}

			set
			{
				try
				{
					string str = value;
					if (str != "")
					{
						try
						{
							DateTime dateTime = DateTime.Parse(str);
							string[] strs = new string[5];
							int i = dateTime.Year;
							strs[0] = i.ToString();
							strs[1] = "-";
							i = dateTime.Month;
							strs[2] = i.ToString();
							strs[3] = "-";
							i = dateTime.Day;
							strs[4] = i.ToString();
							str = String.Concat(strs);
							
						}
						catch
						{
						}
					}
					this.g_TextBox.Text=str;
					g_strText = str;
				}
				catch
				{
					g_strText = "";
				}
			}
		}
		[DefaultValueAttribute(true)]
		[DescriptionAttribute("是否只读")]
		[CategoryAttribute("Behavior")]
		public bool ReadOnly
		{
			get
			{
				return g_bReadOnly;
			}

			set
			{
				g_bReadOnly = value;
			}
		}

		[DefaultValueAttribute("~/DatePicker/DatePicker.gif")]
		[DescriptionAttribute("设置按钮图片")]
		[CategoryAttribute("Appearance")]
		public string ImageUrl
		{
			get
			{
				return g_strImageUrl;
			}

			set
			{
				g_strImageUrl = value;
			}
		}
	/*	public bool Range
		{
			get
			{
				return _rang;
			}

			set
			{
				_rang = value;
			}
		}*/

		public DateTime MinDate
		{
			get
			{
				return _mindate;
			}

			set
			{
				_mindate = value;
			}
		}

		public DateTime MaxDate
		{
			get
			{
				return _maxdate;
			}

			set
			{
				_maxdate = value;
			}
		}

		public ShowFormatEnum ShowFormat
		{
			get
			{
				ShowFormatEnum str;

				if (base.ViewState["ShowFormat"] != null)
				{
					str = (ShowFormatEnum)base.ViewState["ShowFormat"];
				}
				else
				{
					str = _showformat;
				}
				return str;
			}

			set
			{
				_showformat = value;
				base.ViewState["ShowFormat"] = _showformat;
			}
		}

		public int AfterDays
		{
			get
			{
				return _afterdays;
			}

			set
			{
				_afterdays = value;
			}
		}

		protected override void CreateChildControls()
		{
			Table table = new Table();
			table.BorderWidth = Unit.Pixel(0);
			table.CellPadding = 0;
			table.CellSpacing = 0;
			table.Width = base.Width;
			table.Height = base.Height;
			TableRow tableRow = new TableRow();
			TableCell tableCell1 = new TableCell();
			tableCell1.HorizontalAlign = HorizontalAlign.Center;
			tableCell1.VerticalAlign = VerticalAlign.Middle;
			TableCell tableCell2 = new TableCell();

			tableCell2.Width = Unit.Pixel(1);
			tableCell2.HorizontalAlign = HorizontalAlign.Center;
			tableCell2.VerticalAlign = VerticalAlign.Middle;
			
			TextBox txt = g_TextBox;
			txt.ID="txt";
			txt.Width = Unit.Percentage(100.0);
			txt.Height = base.Height;
			txt.Text = Text;
			txt.ToolTip=base.ToolTip;
			txt.ReadOnly=ReadOnly;
			
			System.Web.UI.HtmlControls.HtmlImage btn=new System.Web.UI.HtmlControls.HtmlImage();
			btn.ID="datepickerbtn";
			btn.Src=ImageUrl;

			tableCell1.Controls.Add(txt);
			tableCell2.Controls.Add(btn);
			tableRow.Controls.Add(tableCell1);
			tableRow.Controls.Add(tableCell2);
			
			table.Controls.Add(tableRow);
			this.Controls.Add(table);
			
		}

		public new void PreRender(object sender, EventArgs e)
		{
			if (!base.Page.IsClientScriptBlockRegistered("clientScript"))
			{
				resources = new ResourceManager("Sorke.Web.UI.WebControls.DatePicker", base.GetType().Module.Assembly);
				string str1 = resources.GetString("js");
				if(_language==DateLanguage.Chinese)
				{
					str1=str1.Replace("setweeklanguage","\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"");
					str1=str1.Replace("setmonthlanguage","\"一月\",\"二月\",\"三月\",\"四月\",\"五月\",\"六月\",\"七月\",\"八月\",\"九月\",\"十月\",\"十一\",\"十二\"");
				}
				else
				{
					str1=str1.Replace("setweeklanguage","\"Su\",\"Mo\",\"Tu\",\"We\",\"Th\",\"Fr\",\"Sa\"");
					str1=str1.Replace("setmonthlanguage","\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"");
				}
				str1=str1.Replace("upimage",_upimage);
				str1=str1.Replace("downimage",_downimage);

				if (_css==null)
				{
					str1 = String.Concat(str1, resources.GetString("css"));
				}
				else
				{
					if (!base.Page.IsClientScriptBlockRegistered("CSSclient"))
					{
						base.Page.RegisterClientScriptBlock("CSSclient", String.Format("<link rel=\"STYLESHEET\" type=\"text/css\" href=\"{0}\">",_css));
					}
				}
			
				base.Page.RegisterClientScriptBlock("clientScript", str1);
			}

			TextBox txt=(TextBox)this.FindControl("txt");
			System.Web.UI.HtmlControls.HtmlImage btn=(System.Web.UI.HtmlControls.HtmlImage)this.FindControl("datepickerbtn");
			if(base.Enabled==true)
			{
				string str2 = "";
				switch (ShowFormat)
				{
					case ShowFormatEnum.NoLimit:
						//str2 = String.Concat("event,\'", txt.ClientID, "\',",HasDropDown.ToString().ToLower(),",\'yyyy-mm-dd\')");
						str2=String.Format("event,'{0}',{1}, '{2}')",txt.ClientID,HasDropDown.ToString().ToLower(),SetDateFormat.ToLower());
						break;

					case ShowFormatEnum.AfterDays:
						//str2 = String.Concat(new object[]{"event,\'", txt.ClientID, "\',",HasDropDown.ToString().ToLower(),",\'yyyy-mm-dd\', new Date(),new Date().addDays(", (AfterDays - 1), "))"});
						str2 = String.Concat(new object[]{"event,\'", txt.ClientID, "\',",HasDropDown.ToString().ToLower(),",\'",SetDateFormat.ToLower(),"\', new Date(),new Date().addDays(", (AfterDays - 1), "))"});
						break;

					case ShowFormatEnum.AfterToday:
						//str2 = String.Concat("event,\'", txt.ClientID, "\',",HasDropDown.ToString().ToLower(),",'yyyy-mm-dd\', new Date())");
						str2 = String.Concat("event,\'", txt.ClientID, "\',",HasDropDown.ToString().ToLower(),",'",SetDateFormat.ToLower(),"', new Date())");
						break;

					case ShowFormatEnum.Range:
						//str2 = String.Concat(new object[]{"event,\'", txt.ClientID, "\',",HasDropDown.ToString().ToLower(),",'yyyy-mm-dd\',new Date(", MinDate.Year, ",", (MinDate.Month - 1), ",", MinDate.Day, "),new Date(", MaxDate.Year, ",", (MaxDate.Month - 1), ",", MaxDate.Day, "))"});
						str2 = String.Concat(new object[]{"event,\'", txt.ClientID, "\',",HasDropDown.ToString().ToLower(),",'",SetDateFormat.ToLower(),"',new Date(", MinDate.Year, ",", (MinDate.Month - 1), ",", MinDate.Day, "),new Date(", MaxDate.Year, ",", (MaxDate.Month - 1), ",", MaxDate.Day, "))"});
						break;
				}
				btn.Attributes["onclick"] =  String.Concat("g_Calendar.show(", str2, "; return false;");
				btn.Attributes["onmouseover"] = "if (timeoutId) clearTimeout(timeoutId);return true;";
				btn.Attributes["onmouseout"] = "if (timeoutDelay) calendarTimeout();";
			}
			else
			{
				txt.Enabled=false;
				btn.Visible=false;
			}

		}
		protected override void OnLoad(EventArgs e)
		{
			base.EnsureChildControls();
			Text = g_TextBox.Text;
			base.OnLoad(e);
		}
	}
}

⌨️ 快捷键说明

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