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