一个简单的Demo挑选出被选中的节点:
页面代码:
protected void btnShow_Click(object sender, EventArgs e)
...{
TreeNode Node = new TreeNode("Root");
tvShow.Nodes.Add(Node);
TreeNode ChildNode1 = new TreeNode("ChildNode1");
TreeNode ChildNode2 = new TreeNode("ChildNode2");
TreeNode ChildNode3 = new TreeNode("ChildNode3");
Node.ChildNodes.Add(ChildNode1);
Node.ChildNodes.Add(ChildNode2);
Node.ChildNodes.Add(ChildNode3);
TreeNode Node2 = new TreeNode("Root2");
tvShow.Nodes.Add(Node2);
TreeNode ChildNode1For2 = new TreeNode("ChildNode1For2");
TreeNode ChildNode2For2 = new TreeNode("ChildNode1For2");
TreeNode ChildNode3For2 = new TreeNode("ChildNode1For2");
Node2.ChildNodes.Add(ChildNode1For2);
Node2.ChildNodes.Add(ChildNode2For2);
Node2.ChildNodes.Add(ChildNode3For2);
}
protected void btnGet_Click(object sender, EventArgs e)
...{
for (int i = 0; i < tvShow.Nodes.Count; i++) 
...{
if (tvShow.Nodes[i].ChildNodes.Count > 0) //判断是否还有子节点
...{
GetNode(tvShow.Nodes[i]);
}
if (tvShow.Nodes[i].Checked == true) //判断是否被选中
...{
string s = tvShow.Nodes[i].Value.ToString();
ListBox1.Items.Add(s);
}
}
}
public void GetNode(TreeNode node)
...{
for (int i = 0; i < node.ChildNodes.Count; i++) 
...{
if (node.ChildNodes[i].ChildNodes.Count > 0) //判断是否还有子节点
...{
GetNode(tvShow.Nodes[i]); //递归查找
}
if (node.ChildNodes[i].Checked == true) //判断是否被选中
...{
string s = node.ChildNodes[i].Value.ToString();
ListBox1.Items.Add(s);
}
}
}
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TreeView ID="tvShow" runat="server" ShowCheckBoxes ="All" ></asp:TreeView><br />
<asp:Button ID="btnShow" runat="server" Text="Show Data" onclick="btnShow_Click"/>
<asp:Button ID="btnGet" runat="server" Text="Get Data" onclick="btnGet_Click"/>
</div>
<asp:ListBox ID="ListBox1" runat="server" Height="284px" Width="250px">
</asp:ListBox>
</form>
</body>
</html>
本文介绍了一个使用ASP.NET中的TreeView控件来显示并获取被选中节点的简单示例。通过创建树形结构,并利用递归方法遍历所有节点,可以收集所有被选中的项。

3933

被折叠的 条评论
为什么被折叠?



