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

📄 adocmdmanager.ascx.cs

📁 这是我编的一小软件。请等级等待指教。呵呵。ASP的
💻 CS
字号:
namespace Seaskyer.WebApp.skyNews.Pages.AdminMSC
{
	using System;
	using System.Data;
	using System.Drawing;
	using System.Web;
	using System.Web.UI.WebControls;
	using System.Web.UI.HtmlControls;
	using Seaskyer.Strings;
	using Seaskyer.WebApp.Utility;

	/// <summary>
	///		AdoCmdManager : AdoCmd 管理器。
	/// </summary>
	public class AdoCmdManager : basePage
	{
		protected Label pageLabel;
		protected Panel Panel1, Panel2, Panel3;
		protected DataGrid DataGrid1;
		protected Repeater Repeater1;
		protected Button Button1, Submit, Delete, Copy;
		protected HtmlInputHidden id;
		protected HtmlInputButton AddNew, Back;
		protected TextBox CmdID, TableName, sqlStr, description;
		protected RadioButtonList isSYS;

		private void Page_Load(object sender, System.EventArgs e)
		{
			if( !user.IsAdmin )
			{
				base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
				return;
			}
			else
			{
				this.initPage();
			}


			if( Object.Equals(Request.QueryString["tableName"], null) || Object.Equals(Request.QueryString["tableName"], "") )
			{
				this.BindtableList();
			}
			else if( !Object.Equals(Request.QueryString["tableAction"], null) && !Object.Equals(Request.QueryString["tableAction"], ""))
			{
				// 表操作
				string tableAction = Request.QueryString["tableAction"];

				switch( tableAction )
				{
					case "AddNew"	: // 添加表
						break;
					case "Change"	: // 修改表
						break;
					case "Delete"	: // 删除表
						break;
				}
			}
			else
			{
				if( Object.Equals(Request.QueryString["indexID"], null) || Object.Equals(Request.QueryString["indexID"], "") )
				{
					if( Object.Equals(Request.QueryString["Action"], "AddNew") )
					{
						// 加载添加新命令行窗体
						this.BindAddCmdInfo(Request.QueryString["tableName"].ToString());
					}
					else
					{
						// 绑定指定 tableName 的所有命令列表
						this.BindtableCmdInfo(Request.QueryString["tableName"].ToString());
					}
				}
				else
				{
					if( Object.Equals(Request.QueryString["Action"], "Delete") )
					{
						// 执行删除指定 tableName 下的指定 CmdID 的信息
					}
					else
					{
						// 绑定指定 indexID 的命令信息(用于修改操作)
						this.BindAdoCmdInfo(Request.QueryString["indexID"]);
					}
				}
			}
		}

		#region Web 窗体设计器生成的代码
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
			//
			InitializeComponent();
			base.OnInit(e);
		}
		
		/// <summary>
		///		设计器支持所需的方法 - 不要使用代码编辑器
		///		修改此方法的内容。
		/// </summary>
		private void InitializeComponent()
		{
			this.Load += new System.EventHandler(this.Page_Load);
		}
		#endregion

		void initPage()
		{
			Panel1.Visible		= false;
			Panel2.Visible		= false;
			Panel3.Visible		= false;
			pageLabel.Visible	= false;
			Button1.Visible		= false;
			Submit.Visible		= false;
			Delete.Visible		= false;
			Copy.Visible		= false;
			AddNew.Visible		= false;
			Back.Visible		= false;
		}

		#region 响应添加/修改表事件
		protected void Button1_OnClick(object sender, EventArgs e)
		{
			if( !user.IsAdmin )
			{
				base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
				return;
			}


		}
		#endregion

		#region 响应添加/修改命令事件
		protected void Submit_OnClick(object sender, EventArgs e)
		{
			if( !user.IsAdmin )
			{
				base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
				return;
			}

			
			// 构造DataTable
			DataTable dt = new DataTable();
			DataRow dr;

			dr = dt.NewRow();
			dt.Columns.Add("@ID");				dr[0]  = CmdID.Text;
			dt.Columns.Add("@tableName");		dr[1]  = TableName.Text;
			dt.Columns.Add("@System");			dr[2]  = isSYS.SelectedValue;
			dt.Columns.Add("sqlStr");			dr[3]  = Function.convertXmlString(sqlStr.Text);
			dt.Columns.Add("description");		dr[4]  = description.Text;
			dt.Rows.Add(dr);


			if( Object.Equals(Request.QueryString["Action"], "AddNew") )
			{
				if( cmd.Contains(TableName.Text, CmdID.Text) )
				{
					user.MessageShowBack("您所添加的命令ID “" + CmdID.Text + "”在表“" + TableName.Text + "”中已经存在。");
				}

				// 开始添加
				cmd.Add(TableName.Text, dt);
			}
			else
			{
				if( cmd.Contains(TableName.Text, CmdID.Text) && (CmdID.Text != id.Value) )
				{
					user.MessageShowBack("您所修改的命令ID “" + CmdID.Text + "”在表“" + TableName.Text + "”中已经存在。");
				}

				// 开始修改
				cmd.Set(TableName.Text, id.Value, dt);
			}

			Response.Redirect(base.basePath + "Admin/AdoCmdManager.aspx?tableName=" + TableName.Text);
		}
		#endregion

		#region 响应复制命令事件
		protected void Copy_OnClick(object sender, EventArgs e)
		{
			if( !user.IsAdmin )
			{
				base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
				return;
			}

			cmd.CopyTo(TableName.Text, id.Value);

			Response.Redirect(base.basePath + "Admin/AdoCmdManager.aspx?tableName=" + TableName.Text);
		}
		#endregion

		#region 响应删除命令事件
		protected void Delete_OnClick(object sender, EventArgs e)
		{
			if( !user.IsAdmin )
			{
				base.strError.Add("您无权执行 “" + lang.AppName + "” 操作,详情请与管理员联系!");
				return;
			}

			
			if( Object.Equals(Request.Form["chk"], null) || Object.Equals(Request.Form["chk"], "") )
			{
				Response.Write("<script>alert('请选择您要删除的命令(可多选)。');history.back();</" + "script>");
				Response.End();
			}

			string tableName = Request.QueryString["tableName"];

			string[] idArray = Function.SplitArray(Request.Form["chk"], ',');

			for( int i = 0; i < idArray.Length; i++ )
			{
				cmd.Remove(tableName, idArray[i]);
			}

			this.BindtableCmdInfo(tableName);
		}
		#endregion

		#region 初始化DataGrid中子控件的属性
		protected void DataGrid1_ItemCreated(object sender, DataGridItemEventArgs e)
		{
			if(e.Item.ItemIndex >= 0)
			{
				e.Item.Attributes.Add("onmouseover","this.className='tdbg-dark';");
				e.Item.Attributes.Add("onmouseout","this.className='tdbg';");
			}

			switch(e.Item.ItemType)
			{
				case ListItemType.Item				:
				case ListItemType.AlternatingItem	:
				case ListItemType.EditItem			:
					HyperLink hl = (HyperLink)e.Item.FindControl("btnChange");
					hl.NavigateUrl = base.basePath + "Admin/AdoCmdManager.aspx?tableName=" + DataGrid1.DataKeys[(int)e.Item.ItemIndex];
					break;
			}

		}
		#endregion


		/// <summary>
		/// AdoCmd中的表列表
		/// </summary>
		void BindtableList()
		{
			Panel1.Visible = true;

			DataTable dt = cmd.GetAdoCmdTableList();

			DataGrid1.DataSource = dt.DefaultView;
			DataGrid1.DataBind();

			pageLabel.Text = "共有表 " + dt.Rows.Count + " 个";
			pageLabel.Visible = true;
		}

		/// <summary>
		/// AdoCmd中某个表的命令集合
		/// </summary>
		void BindtableCmdInfo(string tableName)
		{
			Panel2.Visible = true;

			DataTable dt = cmd.GetAdoCmdInfo(tableName);

			Repeater1.DataSource = dt.DefaultView;
			Repeater1.DataBind();


			pageLabel.Text = "共有命令 " + dt.Rows.Count + " 条";
			pageLabel.Visible	= true;

			AddNew.Attributes.Add("onclick", "location.href='/skyNews/Admin/AdoCmdManager.aspx?Action=AddNew&tableName=" + tableName + "';");
			AddNew.Visible		= true;
			Back.Attributes.Add("onclick", "location.href='/skyNews/Admin/AdoCmdManager.aspx';");
			Back.Visible		= true;
			Delete.Visible		= true;
		}

		/// <summary>
		/// 初始化修改页面的窗体内容
		/// </summary>
		/// <param name="indexID"></param>
		void BindAdoCmdInfo(string indexID)
		{
			Panel3.Visible	= true;
			Submit.Visible	= true;
			Submit.Text		= "修 改";

			DataTable dt = cmd.GetAdoCmdInfo(Request.QueryString["tableName"], indexID);

			if( dt.Rows.Count == 1 )
			{
				id.Value			= dt.Rows[0]["@id"].ToString();
				CmdID.Text			= dt.Rows[0]["@id"].ToString();
				TableName.Text		= Request.QueryString["tableName"]; TableName.ReadOnly = true;

				for( int i = 0; i < isSYS.Items.Count; i++ )
				{
					if( isSYS.Items[i].Value == dt.Rows[0]["@System"].ToString() ) isSYS.Items[i].Selected = true;
					else
						isSYS.Items[i].Selected = false;
				}

				sqlStr.Text			= dt.Rows[0]["sqlStr"].ToString();
				description.Text	= dt.Rows[0]["description"].ToString();
			}

			dt.Clear();
			dt.Dispose();

			Back.Attributes.Add("onclick", "location.href='/skyNews/Admin/AdoCmdManager.aspx?tableName=" + TableName.Text + "';");
			Back.Visible			= true;
			Copy.Attributes.Add("onclick", "if(!confirm('您确定要复制命令“" + id.Value + "”吗?'))return false;");
			Copy.Visible			= true;
		}

		/// <summary>
		/// 初始化添加页面的窗体内容
		/// </summary>
		void BindAddCmdInfo(string tableName)
		{
			Panel3.Visible	= true;
			Submit.Visible	= true;
			Submit.Text		= "新 建";

			CmdID.Text		= tableName + "_";
			TableName.Text	= tableName; TableName.ReadOnly = true;

			Back.Attributes.Add("onclick", "location.href='/skyNews/Admin/AdoCmdManager.aspx?tableName=" + tableName + "';");
			Back.Visible			= true;
		}
	}
}

⌨️ 快捷键说明

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