/// 用递归的方法读取树 /// </summary> /// <param name="treeView">需要把数据绑定到的TreeView控件</param> /// <param name="tableName">树的数据所在的表</param> public void GetTree(TreeView treeView, string fileRecording_templet, string cell_tempet, bool withImage, string projectNo, bool IsAll) { treeView.Nodes.Clear(); ds = vars.GetTrees(true, Globals.OpenedProjectNo); //DataColumn[] tColumns = new DataColumn[1]; //tColumns[0] = ds.Tables[0].Columns["parentid"]; //ds.Tables[0].PrimaryKey = tColumns; //dsArchive = vars.GetArchives(); DataView dataView = new DataView(ds.Tables[0]); dataView.RowFilter = "id='01'"; if (dataView.Count == 0) { return; } DataRowView tRow = dataView[0]; DigiPower.ERM.Model.FileRecording_Templet M_FileRecording_Templet = this.Command_GetFile(tRow);//获取文件对象模型 //新建节点 TreeNodeEx node = new TreeNodeEx(); node.Name = M_FileRecording_Templet.id; //节点唯一ID,用来检索 node.Text = M_FileRecording_Templet.gdwj; //标题 node.Tag = M_FileRecording_Templet; //是否最后一个节点,范例路径,是否用户定义表格,附件 node.Checked = M_FileRecording_Templet.isvisible == 1?true:false; //是否可见 if (withImage) { node.ImageIndex = 0; //0为根目录图片号 node.SelectedImageIndex = 0; //0为根目录图片号 } //添加节点 treeView.BeginUpdate(); treeView.Nodes.Add(node); //添加子节点 LoadChildNodes(node, node.Name, withImage, IsAll); node.IsFirstExpand = false; treeView.EndUpdate(); //展开根节点 treeView.Nodes[0].Expand(); //销毁 //ds = null; }
private DigiPower.ERM.Model.FileRecording_Templet Command_GetFile(DataRowView tRow) { //获取数据 DigiPower.ERM.Model.FileRecording_Templet M_FileRecording_Templet = new DigiPower.ERM.Model.FileRecording_Templet(); M_FileRecording_Templet.id = tRow["id"].ToString(); //节点唯一ID M_FileRecording_Templet.gdwj = tRow["title"].ToString(); //标题 M_FileRecording_Templet.zrr = tRow["zrr"].ToString(); //责任人 M_FileRecording_Templet.orderindex = Convert.ToInt32(tRow["orderindex"]); //顺序号 M_FileRecording_Templet.isvisible = Convert.ToInt32(tRow["isvisible"]); //是否可见 M_FileRecording_Templet.gclx = tRow["gclx"].ToString(); M_FileRecording_Templet.jsdw = tRow["jsdw"].ToString(); M_FileRecording_Templet.jldw = tRow["jldw"].ToString(); M_FileRecording_Templet.sgdw = tRow["sgdw"].ToString(); M_FileRecording_Templet.sjdw = tRow["sjdw"].ToString(); M_FileRecording_Templet.wjmj = tRow["wjmj"].ToString(); M_FileRecording_Templet.cjdag = tRow["cjdag"].ToString(); M_FileRecording_Templet.table_name = tRow["table_name"].ToString(); M_FileRecording_Templet.projectno = CPROJECTNO; return(M_FileRecording_Templet); }
/// <summary> /// 获取树的节点,跟其他方法合用 /// </summary> /// <param name="nodes">TreeNodeCollection</param> /// <param name="nodeID">要查询的节点</param> private void LoadChildNodes(TreeNodeEx pParentNode, string parentID, bool withImage, bool IsAll) { if (ds == null) { return; } DataView dataView = new DataView(ds.Tables[0]); dataView.RowFilter = "ParentID='" + parentID + "'"; TreeNodeEx[] tNodes = new TreeNodeEx[dataView.Count]; int tNodesCount = 0; foreach (DataRowView drv in dataView) { TreeNodeEx node = new TreeNodeEx(); if (this.Command_IsSelectFile(Convert.ToInt32(drv["imageindex"]))) { DigiPower.ERM.Model.FileRecording_Templet M_FileRecording_Templet = this.Command_GetFile(drv); //获取文件对象模型 node.Name = M_FileRecording_Templet.id; //节点唯一ID,用来检索 node.Text = M_FileRecording_Templet.gdwj; //标题 node.Tag = M_FileRecording_Templet; //是否最后一个节点,范例路径,是否用户定义表格,附件 node.Checked = M_FileRecording_Templet.isvisible == 1 ? true : false; //是否可见 } else if (this.Command_IsSelectModel(Convert.ToInt32(drv["imageindex"]))) { DigiPower.ERM.Model.Cell_Templet M_Cell_Templet = this.Command_GetModel(drv); //获取文件对象模型 node.Name = M_Cell_Templet.id; //节点唯一ID,用来检索 node.Text = M_Cell_Templet.title; //标题 node.Tag = M_Cell_Templet; //是否最后一个节点,范例路径,是否用户定义表格,附件 node.Checked = M_Cell_Templet.isvisible == 1 ? true : false; //是否可见 node.NodeKey = M_Cell_Templet.codeno; node.NodeValue = M_Cell_Templet.filepath; } else if (this.Command_IsSelectRoot(Convert.ToInt32(drv["imageindex"]))) { DigiPower.ERM.Model.FileRecording_Templet M_FileRecording_Templet = this.Command_GetFile(drv); //获取文件对象模型 node.Name = M_FileRecording_Templet.id; //节点唯一ID,用来检索 node.Text = M_FileRecording_Templet.gdwj; //标题 node.Tag = M_FileRecording_Templet; //是否最后一个节点,范例路径,是否用户定义表格,附件 node.Checked = M_FileRecording_Templet.isvisible == 1 ? true : false; //是否可见 } if (withImage) { node.ImageIndex = Convert.ToInt32(drv["imageindex"]); node.SelectedImageIndex = Convert.ToInt32(drv["imageindex"]); } node.Text = drv["title"].ToString(); if (node.ImageIndex != 2) { if (IsAll) { LoadChildNodes(node, node.Name, true, true); node.IsFirstExpand = false; } else { TreeNodeEx node1 = new TreeNodeEx(); node1.Name = "临时数据"; node1.Text = "临时数据"; node.Nodes.Add(node1); } } tNodes.SetValue(node, tNodesCount++); } if (80 < tNodes.Length) //如果其含有的子节点数大于80个,启动BeginUpdate方法 { pParentNode.TreeView.BeginUpdate(); pParentNode.Nodes.AddRange(tNodes); pParentNode.TreeView.EndUpdate(); } else { pParentNode.Nodes.AddRange(tNodes); } }