folderedit.aspx.cs

来自「ASP.NET的一些开发实例,有论坛管理系统等」· CS 代码 · 共 239 行

CS
239
字号
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Service;

namespace PKMS
{
	/// <summary>
	/// FolderEdit 的摘要说明。
	/// </summary>
	public class FolderEdit : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Button Button_Save;
		protected System.Web.UI.WebControls.DropDownList DropDownList_Folder;
		protected System.Web.UI.WebControls.Button Button_Parent;
		protected System.Web.UI.WebControls.TextBox TextBox_FullPath;
		protected System.Web.UI.WebControls.TextBox TextBox_FolderName;
		protected System.Web.UI.WebControls.TextBox TextBox_Note;
	
		private void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			if (!Page.IsPostBack)
			{
				this.ListChildren("01", "技术文库");
			}

		}

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

		}
		#endregion




	
		/// <summary>
		/// 改变文档分类
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void DropDownList_Folder_SelectedIndexChanged(object sender, System.EventArgs e)
		{
			this.ListChildren(this.DropDownList_Folder.SelectedItem.Value, this.DropDownList_Folder.SelectedItem.Text);
			this.Button_Parent.Enabled = true;
		}



		/// <summary>
		/// 列出下级目录
		/// </summary>
		/// <param name="ParentCode">上级目录代码</param>
		/// <param name="MenuName">上级目录名称</param>
		private void ListChildren(string ParentCode, string MenuName)
		{
			DataAccessor da = new DataAccessor();

			string sql = "Select MenuCode, MenuName From MENU Where Editable=1 And ParentCode=" + ParentCode + " Order by MenuCode";
			da.Sql = sql;
			OleDbDataReader dr = da.ExecuteReader();
			DropDownList_Folder.DataSource = dr;
			DropDownList_Folder.DataTextField = "MenuName";
			DropDownList_Folder.DataValueField = "MenuCode";
			DropDownList_Folder.DataBind();
			da.Close();

			System.Web.UI.WebControls.ListItem parent = new ListItem("----" + MenuName + "----", ParentCode);
			DropDownList_Folder.Items.Insert(0,parent);
			GetPath(0,ParentCode,true);
		}

		/// <summary>
		/// 获取文档目录的完整路径
		/// </summary>
		/// <param name="levelcounter">层数计数器</param>
		/// <param name="folderid">文档分类ID</param>
		/// <param name="flag">路径文本重置标志</param>
		private void GetPath(int levelcounter, string folderid, bool flag)
		{
			//重置路径文本标志
			if(flag == true)
			{
				this.TextBox_FullPath.Text = "";
				flag = false;
			}

			DataAccessor da = new DataAccessor();
			string sql = "Select MenuCode, MenuName From MENU Where MenuCode='" + folderid + "'";
			DataRow dr = da.ExecuteRecord(sql);
			String MenuCode = dr["MenuCode"].ToString();
			String MenuName = dr["MenuName"].ToString();
			if(dr["MenuCode"].ToString() != "01" && levelcounter<10)
			{
				this.TextBox_FullPath.Text = dr["MenuName"].ToString() + " > " + this.TextBox_FullPath.Text;
				string ParentCode = da.ExecuteScalar("Select ParentCode From MENU Where MenuCode='" + folderid + "'").ToString();
				levelcounter++;
				GetPath(levelcounter, ParentCode, flag);
			}
			da.Close();
		}



		/// <summary>
		/// 点击“上一级”按钮
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void Button_Parent_Click(object sender, System.EventArgs e)
		{
			DataAccessor da = new DataAccessor();
			string sql = "Select P.MenuCode, P.MenuName From MENU P, MENU S Where S.ParentCode=P.MenuCode And S.MenuCode='" + this.DropDownList_Folder.SelectedValue + "'";
			DataRow dr = da.ExecuteRecord(sql);
			string ParentCode = dr["MenuCode"].ToString();
			string ParentName = dr["MenuName"].ToString();
			da.Close();

			ListChildren(ParentCode, ParentName);
			if(this.DropDownList_Folder.SelectedValue == "01")
			{
				this.Button_Parent.Enabled = false;
			}
		}


		/// <summary>
		/// 保存
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void Button_Save_Click(object sender, System.EventArgs e)
		{
			//数据检查
			if(this.CheckData() == false)
			{
				return;
			}

			string sql;
			DataAccessor da = new DataAccessor();

			//获取新的MENUID
			int MenuID = da.GetNewID("MENU", "MenuID");

			//计算新的ParentCode
			string ParentCode = this.DropDownList_Folder.SelectedValue;

			//计算新的MenuCode
			sql = "Select Max(MenuCode) From MENU Where ParentCode = '" + ParentCode + "'";
			string MenuCode = da.ExecuteScalar(sql).ToString();

			if(MenuCode == "")
			{
				MenuCode = ParentCode + "01";
			}
			else
			{
				string temp = MenuCode.Trim();
				temp = (int.Parse(temp.Substring(temp.Length-2,2).TrimStart('0')) + 1).ToString().PadLeft(2,'0');
				MenuCode = ParentCode + temp;
			}

			//获取其它信息
			string MenuName = this.TextBox_FolderName.Text.Trim();
			string Note = this.TextBox_Note.Text.Trim();
			string LinkPage = "/ArticleList.aspx";
			//执行插入数据库记录的语句
			sql = "Insert Into MENU(MenuID, MenuName, ParentCode, MenuCode, LinkPage, Note, Editable, IsLast)" +
				" Values(" + MenuID + "," +
				"'" + MenuName + "'," +
				"'" + ParentCode + "'," +
				"'" + MenuCode + "'," +
				"'" + LinkPage + "'," +
				"'" + Note + "'," +
				"1,1" +
				")\r\n";
			sql += "Update MENU Set IsLast=0 Where MenuCode='" + ParentCode + "'";

			if(da.ExecuteNonQuery(sql) != -1)
			{
				this.Response.Write("<script>alert('该文档分类已经成功添加!');</script>");
			}
			else
			{
				this.Response.Write("<script>alert('该文档分类添加失败!');</script>");
			}
			da.Close();
		}


		/// <summary>
		/// 数据有效性检查
		/// </summary>
		/// <returns></returns>
		private bool CheckData()
		{
			if(this.TextBox_FolderName.Text.Trim().Length==0)
			{
				this.Response.Write("<script>alert('请输入文档分类的名称!');</script>");
				return false;
			}
			else
			{
				return true;
			}
		}
	}
}

⌨️ 快捷键说明

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