数据库字段
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
try
19
{
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

查询
1
查询#region 查询
2
protected void ImgBut_Select_Click(object sender, ImageClickEventArgs e)
3
{
4
TreeView1.CollapseAll();
5
GetNode(TreeView1.Nodes);
6
}
7
//递归查询
8
protected void GetNode(TreeNodeCollection tc)
9
{
10
foreach (TreeNode TNode in tc)
11
{
12
if (TNode.Text.IndexOf(txt_Select.Text.Trim())!=-1)
13
{
14
ExpandParent(TNode);
15
TNode.ImageUrl = "~/TreeLineImages/select.gif";
16
}
17
else
18
{
19
TNode.ImageUrl = "";
20
}
21
22
GetNode(TNode.ChildNodes);
23
}
24
}
25
//展开父节点
26
protected void ExpandParent(TreeNode node)
27
{
28
if (node.Parent != null)
29
{
30
node.Parent.Expand();
31
ExpandParent(node.Parent);
32
}
33
}
34
#endregion
< span>

删除
1
/**//// <summary>
2
/// 删除 (需设置:TreeView1.ShowCheckBoxes = TreeNodeTypes.Leaf;)
3
/// </summary>
4
protected void but_Del_Click(object sender, EventArgs e)
5
{
6
T_Machine dao = new T_Machine();
7
Int32 count = TreeView1.CheckedNodes.Count;
8
for (int i = 0; i < count; i++)
9
{
10
dao.Delete(Convert.ToInt32(TreeView1.CheckedNodes[i].Value));
11
}
12
MachineBind(Convert.ToInt32(Menu1.SelectedItem.Value));
13
}
14

得到所有子节点
1
protected void DisplayChildNodesValue(TreeNodeCollection nodes)
2
{
3
foreach (TreeNode TNode in nodes)
4
{
5
Response.Write(TNode.Value.ToString() + "<br>");
6
DisplayChildNodesValue(TNode.ChildNodes);
7
}
8
}
9
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
10
{
11
DisplayChildNodesValue(TreeView1.SelectedNode.ChildNodes);
12
}
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, "选择节点的文本");
}