如何在CodeBehind中为TreeView的某些节点设置CSS类?

4

我希望在代码后端以不同的样式呈现某些节点

在我的TreeView中,父节点有两种类型的子节点。一种类型与父节点相同(例如组织单位),而另一种类型则不同(例如组织成员)。

我希望以不同的样式显示这两种类型。


请详细说明您的问题:您想要样式化树形视图的哪个方面?您是想自定义整个树形视图,还是使某些行与其他行不同? - Dave Alperovich
就像我之前说的,我想让一些节点与其他节点不同。 - Hamzad
你目前有什么进展? - Dimitar Dimitrov
希望这个解释有所帮助。每个树形视图级别都有自己的类属性。这使您能够自定义整个级别,但不幸的是,不能再细粒度上进行自定义。 - Dave Alperovich
1
未来的一些建议:1)在发帖到 Stack 上之前先做一点自己的研究。2)尽量准确地发布你的问题。3)对那些试图提供帮助的人保持良好的态度。他们可能不会再次尝试帮助你。 - Dave Alperovich
1个回答

3
我不理解恶意评论的原因 - 因为 TreeNode 既没有 CssClass 属性,也没有 style 属性(在我看来这是一个设计失误),所以并没有明显的解决方案。
我曾经遇到过完全相同的需求,并通过将 TreeNode 的“文本”放入带有 class 和/或 style 属性的 span 中来解决它。我之所以说“文本”是因为你可能认为 TreeNode.Text 是 HTML 元素的 innertext,但通过实验我发现,如果你将 node.Text 设置为 HTML,则它将(出乎意料地)呈现为提供的 HTML(即设置 innerhtml)。
例如:
TreeNode tn = new TreeNode("<span style='color:red;'>ABC</span>");

确实会呈现红色文本(而不是显示单词“span”等)。 再次出乎意料,但确实有效。 而且,我本来希望TreeNode除了CssClass和/或style属性之外,还有一个node.Html属性用于设置innerhtml,并让node.Text设置innertext。
也许微软将TreeNode分配给了一位初级程序员:)

这对我解决了问题,希望能帮助其他人。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接