TreeView.aspx.cs
上传用户:xgw_05
上传日期:2009-12-11
资源大小:20208k
文件大小:7k
源码类别:

OA系统

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Web;
  7. using System.Web.SessionState;
  8. using System.Web.UI;
  9. using System.Web.UI.WebControls;
  10. using System.Web.UI.HtmlControls;
  11. using System.Data.SqlClient;
  12. using UDS.Components;
  13. using Microsoft.Web.UI.WebControls;
  14. using System.Configuration;  
  15. namespace UDS.SubModule.UnitiveDocument.MoveTeam
  16. {
  17. /// <summary>
  18. /// TreeView 的摘要说明。
  19. /// </summary>
  20. public class TreeView : System.Web.UI.Page
  21. {
  22. protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
  23. protected DataTable dataTbl1,dataTbl2;
  24. protected String Action="";
  25. public  String ToID="",FromID="";
  26. private void Page_Load(object sender, System.EventArgs e)
  27. {
  28. FromID  = (Request.QueryString["FromID"]!=null)?Request.QueryString["FromID"].ToString():"";
  29. if(!Page.IsPostBack)
  30. {
  31. Action  = (Request.QueryString["Action"]!=null)?Request.QueryString["Action"].ToString():"";
  32. if(Action=="1")
  33. {
  34. ToID  = (Request.QueryString["ToID"]!=null)?Request.QueryString["ToID"].ToString():"";
  35. UDS.Components.ProjectClass prj = new UDS.Components.ProjectClass();
  36. prj.Remove(Int32.Parse(FromID),Int32.Parse(ToID));
  37. prj = null;
  38.                     Response.End();
  39. }
  40. InitRootNodeDataTable();
  41. InitTreeRootNode(TreeView1.Nodes);
  42. //InitTree(TreeView1.Nodes,"0");
  43.     
  44. }
  45. }
  46. #region 将DataReader 转为 DataTable
  47. /// <summary>
  48. /// 将DataReader 转为 DataTable
  49. /// </summary>
  50. /// <param name="DataReader">DataReader</param>
  51. public DataTable ConvertDataReaderToDataTable(SqlDataReader dataReader)
  52. {
  53. DataTable datatable = new DataTable();
  54. DataTable schemaTable = dataReader.GetSchemaTable();
  55. //动态添加列
  56. foreach(DataRow myRow in schemaTable.Rows)
  57. {
  58. DataColumn myDataColumn = new DataColumn();
  59. myDataColumn.DataType = System.Type.GetType("System.String");
  60. myDataColumn.ColumnName = myRow[0].ToString();
  61. datatable.Columns.Add(myDataColumn);
  62. }
  63. //添加数据
  64. while(dataReader.Read())
  65. {
  66. DataRow myDataRow = datatable.NewRow();
  67. for(int i=0;i<schemaTable.Rows.Count;i++)
  68. {
  69. myDataRow[i] = dataReader[i].ToString();
  70. }
  71. datatable.Rows.Add(myDataRow);
  72. myDataRow = null;
  73. }
  74. schemaTable = null;
  75. return datatable;
  76. }
  77. #endregion
  78. /// <summary>
  79. /// 初始化 RootNode DataTable
  80. /// </summary>
  81. private void InitRootNodeDataTable()
  82. {
  83. Database data = new Database();
  84. SqlDataReader dataReader = null;
  85. String username = Request.Cookies["Username"].Value.ToString();
  86. SqlParameter[] prams = {
  87.    data.MakeInParam("@UserName",      SqlDbType.VarChar , 20, username),
  88.    data.MakeInParam("@RightCode",      SqlDbType.Int , 1, 1),
  89.    data.MakeInParam("@IncludeFunctionNode",      SqlDbType.Int , 1, 0)
  90.    };
  91. try
  92. {
  93. data.RunProc("sp_GetShowClass", prams,out dataReader);
  94. }
  95. catch(Exception ex)
  96. {
  97. Response.Write(ex.ToString());
  98. //UDS.Components.Error.Log(ex.ToString());
  99. }
  100. dataTbl1 = ConvertDataReaderToDataTable(dataReader); 
  101. dataTbl1.TableName = "TreeView";
  102. }
  103. /// <summary>
  104. /// 初始化 ChildNode DataTable
  105. /// </summary>
  106. private void InitChildNodeDataTable(int ClassParentID)
  107. {
  108. Database data = new Database();
  109. SqlDataReader dataReader = null;
  110. SqlParameter[] prams = {
  111.    data.MakeInParam("@Class_id",      SqlDbType.Int  , 20, ClassParentID)
  112.    };
  113. try
  114. {
  115. data.RunProc("sp_GetAllChildClass", prams,out dataReader);
  116. }
  117. catch(Exception ex)
  118. {
  119. Response.Write(ex.ToString());
  120. //UDS.Components.Error.Log(ex.ToString());
  121. }
  122. dataTbl2 = ConvertDataReaderToDataTable(dataReader); 
  123. dataTbl2.TableName = "TreeView";
  124. }
  125. /// <summary>
  126. /// 初始化TreeView 的 RootNode
  127. /// </summary>
  128. private void InitTreeRootNode(TreeNodeCollection TNC)
  129. {
  130. DataView dataView  = new DataView();
  131. dataView    = dataTbl1.Copy().DefaultView;
  132. dataView.RowFilter = "ClassParentID = ClassID";
  133. foreach(DataRowView drv in dataView)
  134. {
  135. TreeNode tn    = new TreeNode();
  136. tn.ID    = drv["ClassID"].ToString();
  137. tn.Text    = drv["ClassName"].ToString();
  138. tn.ImageUrl    = GetIcon(drv["ClassType"].ToString());
  139. //tn.NavigateUrl = "# onclick='alert('dddd')'";
  140. //tn.Target      = "self";
  141. TNC.Add(tn);
  142. InitChildNodeDataTable(Int32.Parse(tn.ID.ToString()));
  143. InitTreeChildNode(tn.Nodes,tn.ID);
  144. }
  145. dataTbl1 = null;
  146. dataTbl2 = null;
  147. }
  148. /// <summary>
  149. /// 初始化TreeView 的 ChildNode
  150. /// </summary>
  151. private void InitTreeChildNode(TreeNodeCollection TNC,string classParentID)
  152. {
  153. DataView dataView  = new DataView();
  154. dataView    = dataTbl2.Copy().DefaultView ;
  155. dataView.RowFilter = "ClassParentID = " + classParentID + "";
  156. foreach(DataRowView drv in dataView)
  157. {
  158. TreeNode tn    = new TreeNode();
  159. tn.ID    = drv["ClassID"].ToString();
  160. tn.Text    = drv["ClassName"].ToString();
  161. tn.ImageUrl    = GetIcon(drv["ClassType"].ToString());
  162. //tn.NavigateUrl = "#";
  163. //tn.Target      = "parent";
  164. TNC.Add(tn);
  165. InitTreeChildNode(tn.Nodes,tn.ID);
  166. }
  167. }
  168. #region 获取节点图标
  169. /// <summary>
  170. /// 获取节点图标
  171. /// </summary>
  172. private string GetIcon(string ClassType)
  173. {
  174. string rtnValue = "../../../DataImages/";
  175. switch (ClassType)
  176. {
  177. case "0":
  178. rtnValue+= "flag.gif" ;
  179. break;
  180. case "1":
  181. rtnValue+= "myDoc.gif" ;
  182. break;
  183. case "2":
  184. rtnValue+= "mail.gif" ;
  185. break;
  186. case "3":
  187. rtnValue+= "page.gif" ;
  188. break;
  189. case "4":
  190. rtnValue+= "staff.gif" ;
  191. break;
  192. case "5":
  193. rtnValue+= "help_page.gif" ;
  194. break;
  195. case "6":
  196. rtnValue+= "MyTask.gif";
  197. break;
  198. case "7":
  199. rtnValue+= "mail.gif" ;
  200. break;
  201. case "8":
  202. rtnValue+= "myDoc.gif" ;
  203. break;
  204. case "9":
  205. rtnValue+= "DocFlow.gif" ;
  206. break;
  207. case "10":
  208. rtnValue+= "ClientManage.gif" ;
  209. break;
  210. case "11":
  211. rtnValue+= "myLinkman.gif" ;
  212. break;
  213. case "12":
  214. rtnValue+= "position.gif" ;
  215. break;
  216. case "13":
  217. rtnValue+= "role.gif" ;
  218. break;
  219. case "14":
  220. rtnValue+= "kaoqin.gif" ;
  221. break;
  222. default: 
  223. rtnValue+= "red_ball.gif";
  224. break;
  225. }
  226. return rtnValue;
  227. }
  228. #endregion
  229. #region Web Form Designer generated code
  230. override protected void OnInit(EventArgs e)
  231. {
  232. //
  233. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  234. //
  235. InitializeComponent();
  236. base.OnInit(e);
  237. }
  238. /// <summary>
  239. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  240. /// 此方法的内容。
  241. /// </summary>
  242. private void InitializeComponent()
  243. {    
  244. this.Load += new System.EventHandler(this.Page_Load);
  245. }
  246. #endregion
  247. }
  248. }