我需要填充TreeNode.ChildNodes
on 事件TreeView.TreeNodeExpanded
。问题是在事件被触发之前节点是空的,在这种情况下它是不可展开的,并且它旁边没有显示展开图标[+]。
我想让节点可扩展,以防其相关对象有一些子对象而不将这些子对象添加到节点。
我想过在节点中添加一个虚拟子节点,并在展开时将其删除。有没有更好的选择??
谢谢你。
三步搞定:
1 - 将TreeView.ExpandDepth设置为0。这消除了在 中添加的TreeNode
对象的扩展,并在属性设置为true的每个对象旁边TreeView
显示扩展符号[+]。TreeNode
TreeNode.PopulateOnDemand
2- 将每个分支的TreeNode.PopulateOnDemand设置为True。当集合为空时,扩展符号[+]将仅显示在属性设置为true的对象旁边。 TreeNode
TreeNode.ChildNodes
TreeNode
TreeNode.PopulateOnDemand
3- 处理TreeView.TreeNodePopulate事件以在展开时填充分支节点。当 a TreeNode
-TreeNode.PopulateOnDemand
设置为true - 在事件被触发之前被展开时,这个TreeView.TreeNodeExpanded
事件将被触发。
不确定,也没有时间尝试,但我猜你想要的是TreeNode.PopulateOnDemand属性和TreeView.TreeNodePopulate事件。
我建议编辑节点的模板。看看An ASP.NET AJAX TreeView control with templates。