?? tree.cs
字號:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms ;
namespace ExamCenter.BLCTier
{
public class NodeInfo
{
public string NodeID;
public NodeInfo()
{
}
}
public class Tree
{
public static void GenerateTree(DataTable dt,string id,string parentid,string name,ref TreeView tv)
{
Hashtable ht = new Hashtable();
Hashtable htParent = new Hashtable();
int iCount = dt.Rows.Count;
DataRow dr;
NodeInfo nodeInfo;
string [] keyArray = new string[iCount];//保存哈西表中的鍵值
//創建所有樹節點,保存在哈西表中
for(int i=0;i<iCount;i++)
{ //-----------------處理記錄編號域------------------------
nodeInfo = new NodeInfo();
dr = dt.Rows[i];
nodeInfo.NodeID = dr[id].ToString();
keyArray[i] = nodeInfo.NodeID;
TreeNode tn = new TreeNode (); //創建節點
tn.Tag= dr[id].ToString();
tn.Text= dr[name].ToString();
ht.Add(nodeInfo.NodeID,tn);
//----------處理記錄父編號域-----------------------
TreeNode tnParent=new TreeNode ();
tnParent.Tag = dr[parentid].ToString();
htParent.Add (nodeInfo.NodeID,tnParent);
//-----------------------------------------------
}
//建立節點關系,并將根節點加入到TreeView中
for(int i=0;i<iCount;i++)
{
TreeNode tn = (TreeNode)ht[keyArray[i]];
TreeNode tnParent=(TreeNode)htParent[keyArray[i]];
if(tnParent.Tag == null || (string)tnParent.Tag == "0")
tv.Nodes.Add(tn);
//這是根節點
else //這是子節點
{
TreeNode tnCurrentParent = (TreeNode)ht[tnParent.Tag];
//找父節點對象,注意:可能找不到父節點對象
if(tnCurrentParent!=null)
tnCurrentParent.Nodes.Add(tn);
//找到父節點:把該節點加到父節點的子節點列表中
else
{
//未找到父節點:或把它設為根節點,或拋棄
//設為根節點
tv.Nodes.Add(tn);
}
}
}
}
//-------------------------------------
public static void GenerateTypeTree(DataTable dt,string id,string parentid,string name,ref TreeView tv,string strTypeName)
{
Hashtable ht = new Hashtable();
Hashtable htParent = new Hashtable();
int iCount = dt.Rows.Count;
DataRow dr;
NodeInfo nodeInfo;
string [] keyArray = new string[iCount];//保存哈西表中的鍵值
//創建所有樹節點,保存在哈西表中
for(int i=0;i<iCount;i++)
{ //-----------------處理記錄編號域------------------------
nodeInfo = new NodeInfo();
dr = dt.Rows[i];
nodeInfo.NodeID = dr[id].ToString();
keyArray[i] = nodeInfo.NodeID;
TreeNode tn = new TreeNode (); //創建節點
tn.Tag= dr[id].ToString();
tn.Text= dr[name].ToString();
ht.Add(nodeInfo.NodeID,tn);
//----------處理記錄父編號域-----------------------
TreeNode tnParent=new TreeNode ();
tnParent.Tag = dr[parentid].ToString();
htParent.Add (nodeInfo.NodeID,tnParent);
//-----------------------------------------------
}
//建立節點關系,并將根節點加入到TreeView中
for(int i=0;i<iCount;i++)
{
TreeNode tn = (TreeNode)ht[keyArray[i]];
TreeNode tnParent=(TreeNode)htParent[keyArray[i]];
if(tnParent.Tag == null || (string)tnParent.Tag == "0" && tn.Text .Trim ()==strTypeName.Trim ())
tv.Nodes.Add(tn);
//這是根節點
else //這是子節點
{
TreeNode tnCurrentParent = (TreeNode)ht[tnParent.Tag];
//找父節點對象,注意:可能找不到父節點對象
if(tnCurrentParent!=null)
tnCurrentParent.Nodes.Add(tn);
//找到父節點:把該節點加到父節點的子節點列表中
else
{
//未找到父節點:或把它設為根節點,或拋棄
//設為根節點
// tv.Nodes.Add(tn);
}
}
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -