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

📄 findbar.cs

📁 《Visual Basic案例开发》一书的源代码
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace _36Hang.Web.UI.WebControls
{
	[DefaultProperty("Title"), ToolboxData("<{0}:FindBar runat=server></{0}:FindBar>")]
	public class FindBar : WebControl, INamingContainer
	{
		private FindBarItems _Items;
		private ImageClickEventHandler _ImageClickEventHandler;
		private FindBarModeFilename ModeFilename;

		private HtmlTableCell _HtmlTableCell;

		public event EventHandler Click;

		public FindBar() : base()
		{
			_Items = new FindBarItems();
			_HtmlTableCell = new HtmlTableCell();
			_ImageClickEventHandler = new ImageClickEventHandler(this.ServerClicked);

			ModeFilename = new FindBarModeFilename();
		}

		public string Pathname
		{
			get { if(ViewState["Pathname"] == null) return ""; else return (string)ViewState["Pathname"]; }
			set { ViewState["Pathname"] = value; }
		}

		public int Velocity
		{
			get { if(ViewState["Velocity"] == null) return 2; else return (int)ViewState["Velocity"]; }
			set { ViewState["Velocity"] = value; }
		}

		public string Expanded
		{
			get { if(ViewState["Expanded"] == null) return this.Pathname + "Images/FindBar/Expanded.gif"; else return (string)ViewState["Expanded"]; }
			set { ViewState["Expanded"] = value; }
		}

		public string Closed
		{
			get { if(ViewState["Closed"] == null) return this.Pathname + "Images/FindBar/Closed.gif"; else return (string)ViewState["Closed"]; }
			set { ViewState["Closed"] = value; }
		}

		public string Find
		{
			get { if(ViewState["Find"] == null) return this.Pathname + "Images/FindBar/Find.gif"; else return (string)ViewState["Find"]; }
			set { ViewState["Find"] = value; }
		}

		public string Title
		{
			get { if(ViewState["Title"] == null) return "查找栏"; else return (string)ViewState["Title"]; }
			set { ViewState["Title"] = value; }
		}

		public int Version
		{
			get { if(ViewState["Version"] == null) return 6; else return (int)ViewState["Version"]; }
			set { ViewState["Version"] = value; }
		}

		public FindBarMode Mode
		{
			get { if(ViewState["Mode"] == null) return FindBarMode.Default; else return (FindBarMode)ViewState["Mode"]; }
			set { ViewState["Mode"] = value; }
		}

		public FindBarItems Items
		{
			get { return this._Items; }
			set { this._Items = value; }
		}

		public void Expand()
		{
			base.Page.RegisterStartupScript("_" + this.ID + "_Expand","<script language = \"javascript\"> _" + this.ID + "_Initialize(); _" + this.ID + "_Div.style.setAttribute(\"display\",\"none\"); _" + this.ID + "_Click(); </script>");
		}

		public void Initialize()
		{
			base.Page.RegisterStartupScript("_" + this.ID + "_Initialize","<script language = \"javascript\"> _" + this.ID + "_Initialize(); </script>");
		}

		public void Refresh()
		{
			this.EnsureChildControls();

			_HtmlTableCell.InnerHtml = "";
			SetStruct();
			SetControl();
		}

		protected virtual void OnClick(EventArgs e,string eventArgument)
		{
			if (Click != null)
			{
				Click(this,e);
			}
		}

		private void ServerClicked(object sender, ImageClickEventArgs e)
		{
			for(int i=0; i<_Items.Count; i++)
			{
				_Items[i].Text = GetValue(_Items[i].ID);
			}

			OnClick(e,"");

			this.EnsureChildControls();

			_HtmlTableCell.InnerHtml = "";
			SetStruct();
			SetControl();
		}

		private string GetValue(string ID)
		{
			Control objControl;
			for(int i=0; i<base.Page.Controls.Count; i++)
			{
				objControl = (Control)base.Page.Controls[i];
				if(objControl.ID != "")
				{
					for(int j=0; j<base.Page.Controls[i].Controls.Count; j++)
					{
						objControl = (Control)base.Page.Controls[i].Controls[j];
						if(objControl.ID == this.ID)
						{
							TextBox objTextBox;
							objTextBox = (TextBox)base.Page.FindControl(this.ID + ":" + ID);
							return objTextBox.Text;
						}
					}
				}
			}
			return null;
		}

		protected override void OnLoad(EventArgs e)
		{
			base.OnLoad (e);

			this.Version = base.Page.Request.Browser.MajorVersion;

			if(base.Page.IsPostBack != false)
			{
				SetStruct();
				SetControl();
			}
		}

		protected override void Render(HtmlTextWriter objHtmlTextWriter)
		{
			this.EnsureChildControls();
			base.Render(objHtmlTextWriter);
		}

		protected override void CreateChildControls()
		{
			Controls.Add(new LiteralControl("<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"#d6dff7\">" + "\n"));
			Controls.Add(new LiteralControl("	<tr class=\"FindBar\">" + "\n"));
			Controls.Add(_HtmlTableCell);
			Controls.Add(new LiteralControl("	</tr>" + "\n"));
			Controls.Add(new LiteralControl("</table>" + "\n"));

			if(base.Page.IsPostBack != true)
			{
				SetStruct();
				SetControl();
			}
		}

		private void SetStruct()
		{
			this.ModeFilename.Default = this.Pathname + "Includes/FindBar/Default.css";
			this.ModeFilename.Office2003 = this.Pathname + "Includes/FindBar/Office2003.css";

			string strModeFilename = this.ModeFilename.Default;
			if(this.Mode == FindBarMode.Office2003) strModeFilename = this.ModeFilename.Office2003;
			_HtmlTableCell.Controls.Add(new LiteralControl("<link href=\"" + strModeFilename + "\" type=\"text/css\" rel=\"stylesheet\">" + "\n"));
		}

		private void SetControl()
		{
			if(this.Version >= 6)
			{
				_HtmlTableCell.Controls.Add(new LiteralControl("<script language=\"javascript\">" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("<!--" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	var _" + this.ID + "_Total = 0;" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	var _" + this.ID + "_Opacity = 0;" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	var _" + this.ID + "_Height = 0;" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	var _" + this.ID + "_Velocity = " + this.Velocity + ";" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	function _" + this.ID + "_Initialize()" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	{" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("		_" + this.ID + "_Div.style.setAttribute(\"display\",\"block\")" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("		_" + this.ID + "_Total = _" + this.ID + "_Div.offsetHeight;" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("		_" + this.ID + "_Div.style.setAttribute(\"display\",\"none\")" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	}" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	function _" + this.ID + "_Click()" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("	{" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("		if(_" + this.ID + "_Div.style.display == \"none\")" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("		{" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("			_" + this.ID + "_Div.style.setAttribute(\"height\",\"0\");" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("			_" + this.ID + "_Div.style.setAttribute(\"display\",\"block\");" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("			_" + this.ID + "_Opacity = 0;" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("			_" + this.ID + "_Height = 0;" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("			_" + this.ID + "_Expand();" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("			_" + this.ID + "_Title.background = \"" + this.Expanded + "\";" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("		}" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("		else" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("		{" + "\n"));
				_HtmlTableCell.Controls.Add(new LiteralControl("			_" + this.ID + "_Div.style.setAttribute(\"height\",_" + this.ID + "_Total);" + "\n"));

⌨️ 快捷键说明

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