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

📄 caisisinputcontrols.cs

📁 医疗决策支持系统
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Collections.Specialized;
using System.ComponentModel;
using System.IO;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI;

namespace Caisis.UI.Core.Classes.CustomControls
{
	#region interfaces
	public interface ICaisisInputControl
	{
		string Table
		{
			get;
			set;
		}

		string Field
		{
			get;
			set;
		}

		string FieldLabel
		{
			get;
			set;
		}

		bool Required
		{
			get;
			set;
		}

		bool ShowHelpBubble
		{
			get;
			set;
		}

		string HelpDescription
		{
			get;
			set;
		}

		bool ShowLabel
		{
			get;
			set;
		}
	}
	#endregion

	[DefaultProperty("Text"), ToolboxData("<{0}:CaisisTextBox runat=server></{0}:CaisisTextBox>")]
	public class CaisisTextBox : TextBox, ICaisisInputControl
	{
		public CaisisTextBox() : base() 
		{ 
			showLabel = true;
		}

		#region private instance members
		private string table;
		private string field;
		private string fieldLabel;
		private bool required;
		private bool showHelpBubble;
		private string helpDescription;
		private bool showLabel;

		private bool showNumberPad;
		private bool showCalendar;
		private bool calcDate;
		#endregion

		#region protected instance members
		protected HtmlImage numberPad;
		protected HtmlImage calendar;
		protected Label inputFieldLabel;
		#endregion
		
		#region Properties required to implement ICaisisInputControl
		public string Table
		{
			get { return table; }
			set { table = value; }
		}

		public string Field
		{
			get { return field; }
			set { field = value; }
		}

		public string FieldLabel
		{
			get { return fieldLabel; }
			set { fieldLabel = value; }
		}

		public bool Required
		{
			get { return required; }
			set { required = value; }
		}

		public bool ShowHelpBubble
		{
			get { return showHelpBubble; }
			set { showHelpBubble = value; }
		}

		public string HelpDescription
		{
			get { return helpDescription; }
			set { helpDescription = value; }
		}

		public bool ShowLabel
		{
			get { return showLabel; }
			set { showLabel = value; }
		}
		#endregion

		#region TextBox-specific Properties
		public bool ShowNumberPad
		{
			get { return showNumberPad; }
			set { showNumberPad = value; }
		} 

		public bool ShowCalendar
		{
			get { return showCalendar; }
			set { showCalendar = value; }
		}
		
		/// <summary>
		/// Intepretes the date entered into the date text field into the readonly date field
		/// </summary>
		public bool CalcDate
		{
			get { return calcDate; }
			set { calcDate = value; }
		}
		#endregion
		
		protected override void  OnInit(EventArgs e) 
		{
			if(FieldLabel != null && FieldLabel.Length > 0)
			{
				inputFieldLabel = new Label();
				inputFieldLabel.Text = FieldLabel + "&nbsp;";
			}

			if(ShowNumberPad)
			{
				numberPad = new HtmlImage();
				numberPad.Src = "~/Images/icon_NumPad.gif"; 
				numberPad.Align = "absMiddle"; //onclick="showNumPad('_ctl0_ORDateText');
				numberPad.Attributes.Add("vspace", "1");
				numberPad.Attributes.Add("hspace", "1");
				numberPad.Attributes.Add("onClick", "showNumPad('" + this.ClientID + "')");
				numberPad.Attributes["class"] = "imageButtonOn";
				Controls.Add(numberPad);
			}

			if(ShowCalendar)
			{
				calendar = new HtmlImage();
				calendar.Src = "~/Images/calendar/cal.gif";
				calendar.Align = "absMiddle";
				calendar.Attributes.Add("hspace", "3");
				calendar.Width = 16;
				calendar.Height = 16;
				calendar.ID = this.ID + "Cal";
				calendar.Attributes.Add("onclick", "showCal(this, dataForm." + this.ClientID.ToString() + ");");
				Controls.Add(calendar);
			}
			
			// NOTE, for this to work the hard date field MUST be the same as the date text field without "Text" in it
			if(CalcDate)
			{
				string calcDateFieldClientID = this.ClientID.Replace("Text", ""); // remove "Text" to get client Id of hard date field
				
				this.Attributes.Add("onBlur", "fuzzyDate(" + this.ClientID.ToString() + ", " + calcDateFieldClientID + ");");
			}
		}

		protected override void Render(HtmlTextWriter w) 
		{
			try
			{
				// No need for ViewState
				this.EnableViewState = false;

				// only render when visible
				if(this.Visible == true)
				{
					if(showLabel && FieldLabel != null && FieldLabel.Length > 0)
					{
						inputFieldLabel.RenderControl(w);
					}
			
					base.Render(w); // renders this control; sequence matters
			
					if(ShowNumberPad)
					{
						numberPad.RenderControl(w);
					}
					if(ShowCalendar)
					{
						calendar.RenderControl(w);
					}
				}
			}
			catch(Exception ex)
			{
				w.Write("Error building CategorizedCheckBoxList:<br>");
				w.Write(ex.Message);
			}
		}
	}


	[DefaultProperty("Text"), ToolboxData("<{0}:CaisisTextArea runat=server></{0}:CaisisTextArea>")]
	public class CaisisTextArea : TextBox, ICaisisInputControl
	{
		#region private instance members
		private string table;
		private string field;
		private string fieldLabel;
		private bool required;

		private bool showHelpBubble;
		private bool showLabel;
		private string helpDescription;
		#endregion

		#region protected instance members
		protected Label inputFieldLabel;
		#endregion

		#region Properties required to implement ICaisisInputControl
		public string Table
		{
			get { return table; }
			set { table = value; }
		}

		public string Field
		{
			get { return field; }
			set { field = value; }
		}

		public string FieldLabel
		{
			get { return fieldLabel; }
			set { fieldLabel = value; }
		}

		public bool Required
		{
			get { return required; }
			set { required = value; }
		}

		public bool ShowHelpBubble
		{
			get { return showHelpBubble; }
			set { showHelpBubble = value; }
		}

		public string HelpDescription
		{
			get { return helpDescription; }
			set { helpDescription = value; }
		}

		public bool ShowLabel
		{
			get { return showLabel; }
			set { showLabel = value; }
		}
		#endregion

		public CaisisTextArea() : base() 
		{
			base.TextMode = TextBoxMode.MultiLine;
			showLabel = true;
		}

		protected override void OnInit(EventArgs e) 
		{
			if(FieldLabel != null && FieldLabel.Length > 0)
			{
				inputFieldLabel = new Label();
				inputFieldLabel.Text = FieldLabel + "&nbsp;";
			}
		}

		protected override void Render(HtmlTextWriter w) 
		{
			if(showLabel && FieldLabel != null && FieldLabel.Length > 0)
			{
				inputFieldLabel.RenderControl(w);
			}
			
			base.Render(w);
		}
	}


	// note, this is not a WebControl; there is no asp.net hidden webcontrol
	[DefaultProperty("Text"), ToolboxData("<{0}:CaisisHidden runat=server></{0}:CaisisHidden>")]
	public class CaisisHidden : HtmlInputHidden, ICaisisInputControl
	{
		public CaisisHidden() : base() { }
		
		#region private members
		private string fieldLabel;
		private string table;
		private string field;
		private bool required;

		private bool showHelpBubble;
		private bool showLabel;
		private string helpDescription;
		#endregion
		
		#region Properties required to implement ICaisisInputControl
		public string Table
		{
			get { return table; }
			set { table = value; }
		}

		public string Field
		{
			get { return field; }
			set { field = value; }
		}

		public string FieldLabel
		{
			get { return fieldLabel; }
			set { fieldLabel = value; }
		}

		public bool Required
		{
			get { return required; }
			set { required = value; }
		}

		public bool ShowHelpBubble
		{
			get { return showHelpBubble; }
			set { showHelpBubble = value; }
		}

		public string HelpDescription
		{
			get { return helpDescription; }
			set { helpDescription = value; }
		}

		public bool ShowLabel
		{
			get { return showLabel; }
			set { showLabel = value; }
		}
		#endregion

		/// <summary>
		/// Renders the hidden input tag, but not the FieldLabel, since this is a hidden control
		/// </summary>
		/// <param name="writer"></param>
		protected override void Render(HtmlTextWriter writer)
		{
			base.Render(writer);
		}

	}


	[DefaultProperty("Text"), ToolboxData("<{0}:CaisisSelect runat=server></{0}:CaisisSelect>")]
	public class CaisisSelect : DropDownList, ICaisisInputControl
	{	
		public CaisisSelect() : base() 
		{ 
			showLabel = true;
		}

		private string table;
		private string field;
		private string fieldLabel;
		private bool required;

		private bool showHelpBubble;
		private bool showLabel;
		private string helpDescription;

		private string lookupCode;
		protected Label inputFieldLabel;
		
		#region Properties required to implement ICaisisInputControl
		public string Table
		{
			get { return table; }
			set { table = value; }
		}

		public string Field
		{
			get { return field; }
			set { field = value; }
		}

		public string FieldLabel
		{
			get { return fieldLabel; }
			set { fieldLabel = value; }
		}

		public bool Required
		{
			get { return required; }
			set { required = value; }
		}

		public bool ShowHelpBubble
		{
			get { return showHelpBubble; }
			set { showHelpBubble = value; }
		}

		public string HelpDescription
		{
			get { return helpDescription; }
			set { helpDescription = value; }
		}

		public bool ShowLabel
		{
			get { return showLabel; }

⌨️ 快捷键说明

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