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

📄 nodemanager.cs

📁 ASP动态树 可以读取数据库,非常好用.希望大家踊跃下载.
💻 CS
字号:
using System;
using System.Data;
using System.Data.SqlClient;
using Component;

namespace JSXMLlTree
{
	/// <summary>
	/// NodeManager 的摘要说明。
	/// </summary>
	public class NodeManager
	{
		private static readonly string SQL_GetChildNode = "SELECT id,DeptParentId,DeptName,DeptCorpId,DeptType,DeptUrl,DeptUrlTarget "
			+ "FROM Study_Department "
			+ " WHERE DeptCorpid = @CorpId  AND DeptParentId =@ParentId "
			+ " ORDER BY  DeptShowIndex ASC";
		private static readonly string SQL_GetRsCount ="SELECT count(1) FROM Study_Department "
			+ " WHERE DeptCorpid = @corpId  AND DeptParentId =@parentId";
		private static readonly string SQL_GetEmployeePower = "SELECT departmentId  "
			+ "FROM Study_EmployeePower "
			+ " WHERE EmployeeId = @EmployeeId";
		private static readonly string SQL_DeletePower = "DELETE  "
			+ "FROM Study_EmployeePower "
			+ " WHERE EmployeeId = @EmployeeId";
		private static readonly string SQL_InsertPower = "INSERT INTO Study_EmployeePower(employeeid, departmentId ) values "
			+ "(@employeeId,@departmentId) ";

		//using static ?????????????????????????????????????
		private  static ClassConn conn = new ClassConn(System.Configuration.ConfigurationSettings.AppSettings["ConnStudy"].ToString());
		private  static string strTreeXML ="";
		private NodeManager()
		{
			//
			// TODO: 在此处添加构造函数逻辑
			//
		}
		/// <summary>
		/// 增加树节点,返回一个节点的XML格式.
		/// </summary>
		/// <param name="nodeParentId"></param>
		/// <param name="nodeText"></param>
		/// <param name="corpId"></param>
		/// <param name="nodeUrl"></param>
		/// <param name="nodeUrlTarger"></param>
		/// <returns></returns>
		public static string InsertNode(string nodeParentId,string nodeText,string corpId,string nodeUrl,string nodeUrlTarger)
		{
			
			string str = string.Empty;
			SqlParameter parmParentId = conn.MakeParam("@ParentId",nodeParentId);
			SqlParameter parmDeptName = conn.MakeParam("@NodeText",nodeText);
			SqlParameter parmDeptCorpId = conn.MakeParam("@CorpId",corpId);
			SqlParameter parmDeptType = conn.MakeParam("@NodeType",2);
			SqlParameter parmDeptUrl = conn.MakeParam("@NodeUrl",nodeUrl);
			SqlParameter parmDeptUrlTarget = conn.MakeParam("@NodeUrlTarget",NodeProperties.Target);
			SqlParameter parmBaseUrl = conn.MakeParam("@BaseUrl",NodeProperties.BaseUrl);
			SqlParameter [] parms = new SqlParameter[] {parmParentId,parmDeptName,parmDeptCorpId,parmDeptType,parmDeptUrl,
														   parmDeptUrlTarget,parmBaseUrl};
			SqlDataReader reader = null;
			conn.RunProc("up_InsertNode",parms,out reader);
			while(reader.Read())
			{
				string  isDept  = reader["IsDept"].ToString();
				string  id  = reader["id"].ToString();
				string  deptName  = reader["DeptName"].ToString();
				string  deptUrl  = reader["DeptUrl"].ToString();
				string  deptUrlTarget  = reader["DeptUrlTarget"].ToString();
				
				str = Common.GetNodeXml(isDept,id,deptName,deptUrl,deptUrlTarget);
			}
			if(!reader.IsClosed)
			{
				reader.Close();
			}
			return str;
		}

		/// <summary>
		/// 递归返回树节点XML
		/// </summary>
		/// <param name="corpId"></param>
		/// <param name="parentId"></param>
		/// <returns></returns>
		public static string  GetAllNode(string corpId,string parentId)
		{
			SqlParameter parmCorpId = conn.MakeParam("@CorpId",corpId);
			SqlParameter parmParentId = conn.MakeParam("@ParentId",parentId);
			SqlParameter [] parms = new SqlParameter[]{parmCorpId,parmParentId};
			DataTable dataTable = null;
			conn.RunSql(SQL_GetChildNode,parms,out dataTable);
			if(dataTable.Rows.Count>0)
			{
				for(int i= 0;i<dataTable.Rows.Count;i++)
				{
					DataRow row = dataTable.Rows[i];
					strTreeXML += "<item id=\"" + row["id"].ToString()+"\" text=\"" +  row["deptName"].ToString()+ "\"  url=\""
						+ row["deptUrl"].ToString()+"\"  target=\""+ row["deptUrlTarget"].ToString()+"\">\n";
					
					SqlParameter parmCorpId2 = conn.MakeParam("@corpId",corpId);
					SqlParameter parmParentId2 = conn.MakeParam("@ParentId",row["id"].ToString());
					SqlParameter [] parms2 = new SqlParameter[]{parmCorpId2,parmParentId2};
					if(conn.GetRsCount(SQL_GetRsCount,parms2)>0)
					{
						GetAllNode(corpId,row["id"].ToString());
					}
					strTreeXML += "</item>\n";
				}
				//Response.Write("");
			}
			return strTreeXML;
		}
		
		/// <summary>
		/// 清空树节点的所有XML,初始化数后必须调用次方法释放内容.
		/// </summary>
		public  static void ClearTreeXML()
		{
			strTreeXML = string.Empty;
		}

		/// <summary>
		/// 	@NodeId int,@CorpId int,@isOk int = 0 output
		/// </summary>
		/// <param name="nodeId"></param>
		/// <param name="corpId"></param>
		/// <returns></returns>
		public static string DeleteNode(string nodeId,string corpId)
		{
			string str = string.Empty;
			//输入参数
			SqlParameter parmNodeId = conn.MakeParam("@NodeId",nodeId);
			SqlParameter parmCorpId = conn.MakeParam("@CorpId",corpId);
			//输出参数
			SqlParameter parmIsOk = conn.MakeParam("@isOk",0,"out",0);
			SqlParameter [] parms = new SqlParameter[] {parmNodeId,parmCorpId,parmIsOk};
			conn.RunProc("up_DeleteNode",parms);
			str = "<IsOk>" + parmIsOk.Value + "</IsOk>";
			return str;
		}


		/// <summary>
		/// 根据employeeId获得员工的部门/菜单权限信息.
		/// </summary>
		/// <param name="employeeId"></param>
		/// <returns></returns>
		public static string  GetNodeIds(string employeeId)
		{
			string nodes = "";
			SqlParameter parmEmployeeId = conn.MakeParam("@EmployeeId",employeeId);
			SqlParameter [] parms = new SqlParameter[]{parmEmployeeId};
			SqlDataReader reader = null;
			conn.RunSql(SQL_GetEmployeePower,parms,out reader);
			while(reader.Read())
			{
				if(nodes.Length == 0)
				{
					nodes = reader["DepartmentId"].ToString();
				}
				else
				{
					nodes += "," + reader["DepartmentId"].ToString();
				}
			}
			if(!reader.IsClosed)
			{
				reader.Close();
			}
			return nodes;
		}

		/// <summary>
		/// 保存员工的部门权限节点
		/// </summary>
		/// <param name="nodeIds"></param>
		/// <param name="employeeId"></param>
		/// <returns></returns>
		public static string SaveNodeIds(string nodeIds,string employeeId)
		{
			string str = "";
			string [] strArray = nodeIds.Split(',');
			SqlCommand cmd = conn.TransBegin();
			try
			{
				//删除原来权限
				//SQL_DeletePower
				SqlParameter parmEmployeeId = conn.MakeParam("@employeeId",employeeId);
				SqlParameter [] parms = new SqlParameter[] {parmEmployeeId};
				conn.TransRunSql(SQL_DeletePower,cmd,parms);
				//增加权限
				foreach(string nodeId in strArray)
				{
					//输入参数
					//parmEmployeeId = conn.MakeParam("@employeeId",employeeId);
					SqlParameter parmDepartmentId = conn.MakeParam("@DepartmentId",nodeId);
					SqlParameter [] parms2 = new SqlParameter[] {parmEmployeeId,parmDepartmentId};
					conn.TransRunSql(SQL_InsertPower,cmd,parms2);
				}
				conn.TransCommit(cmd);
				str =  "<IsOk>1</IsOk>";
			}
			catch(Exception ex)
			{
				conn.TransRollBack(cmd);
				//System.Web.HttpContext.Current.Response.Write(ex.ToString());
				//return "<IsOk>0</IsOk>";
				return "<IsOk>"+ex.ToString()+"</IsOk>";
			}
			return str;
		}
	}
}

⌨️ 快捷键说明

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