TreeView 常用代码C#
数据库字段
ID
ParentID
EquipmentName
代码:
1
protected void MachineBind(Int32 KindID)2
{3
TreeView1.Nodes.Clear();4
TreeNode newnode = new TreeNode();5
T_Machine dao = new T_Machine();6

7
DataTable dt = dao.GetMachineByKindID(KindID);8
this.InitTree(this.TreeView1.Nodes, 0, dt);9
}10

11
/// <summary>12
/// 初始化树13
/// </summary>14
private void InitTree(TreeNodeCollection Nds, int parentID, DataTable dt)15
{16
TreeNode tmpNd;17
DataRow[] rows = dt.Select("MachineParentID=" + parentID);18
try19
{20
//使用foreach语句 来判断递归结束的条件21
foreach (DataRow row in rows)22
{23
tmpNd = new TreeNode();24
tmpNd.Value = row["MachineID"].ToString();25
tmpNd.Text = row["MachineName"].ToString();26
tmpNd.ToolTip = row["MachineFlag"].ToString();27

28
Nds.Add(tmpNd);29

30
InitTree(tmpNd.ChildNodes, Convert.ToInt32(tmpNd.Value), dt);31
}32
}33
catch { }34
}35

36

protected void treeNavi_SelectedNodeChanged(object sender, EventArgs e)
{
LblSelect.Text = GetNodePath(treeNavi.SelectedNode, treeNavi.SelectedNode.Text);
}
/// <summary>
/// 获取节点路径
/// </summary>
/// <param name="node"></param>
/// <param name="temp"></param>
/// <returns></returns>
private string GetNodePath(TreeNode node,string temp)
{
if (node.Parent != null)
{
temp = node.Parent.Text +" >> "+ temp;
return GetNodePath(node.Parent, temp);
}
return temp;
}
/// <summary>
/// 选择节点
/// </summary>
/// <param name="tn"></param>
/// <param name="text"></param>
private void SelectNode(TreeNode note, string text)
{
foreach (TreeNode tempNode in note.Nodes)
{
if (tempNode.Text == text)
{
this.treeView1.SelectedNode = tempNode;
}
else
{
if (tempNode.Nodes.Count > 0)
{
SelectNode(tempNode, text);
}
}
}
}
//调用
foreach (TreeNode note in treeView1.Nodes)
{
SelectNode(note, "选择节点的文本");
}

浙公网安备 33010602011771号