最近做的项目用到了微软的树控件,所以我总结了部分树控件的用法。
遍历节点
void GetAllNodeText(TreeNodeCollection tnc)
{
foreach(TreeNode node in tnc)
{
if(node.Nodes.Count!=0)
GetAllNodeText(node.Nodes);
Response.Write(node.Text + " ");
}
}
建树
private void CreateTree(TreeNodeCollection folderTreeNodeCollection , string parentID)
{
if (parentID=="")
{
dv.RowFilter= "ParentID is null";
}
else
{
dv.RowFilter= "ParentID="+"'"+parentID+"'";
}
foreach (DataRowView drv in dv)
{
TreeNode tn= new TreeNode();
tn.Expanded= true ;
tn.ID=drv.Row["TypeID"].ToString().Trim();
tn.Text=drv.Row["TypeName"].ToString().Trim();
folderTreeNodeCollection.Add(tn);
CreateTree(tn.Nodes,tn.ID);
}
}
遍历选中节点
private void getAllCheckedNode(TreeNodeCollection tnc)
{
foreach (TreeNode tn in tnc)
{
if (tn.Checked== true )
{
Response.Write(tn.Text+””);
}
if (tn.Nodes.Count>0)
{
getAllCheckedNode(tn.Nodes);
}
}
}
选中或取消选中节点 , 自动选中或取消选中期子节点
private void CheckedChildNode(TreeNode tn)
{
if (tn.Nodes.Count>0)
{
foreach (TreeNode tnn in tn.Nodes)
{
tnn.Checked=tn.Checked;
CheckedChildNode(tnn);
}
}
}
调用方法
private void TreeView1_Check( object sender, Microsoft.Web.UI.WebControls.TreeViewClickEventArgs e)
{
setAllCheckedNode(TreeView1.GetNodeFromIndex(e.Node));
}
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步