在我的ASP.NET应用程序中,启用了复选框的情况下使用了Treeview控件。在那个treeview中,如果我选中了treenode想在特定的checked节点中显示不同的颜色。见下面如何更改asp.net(c#)中的颜色。如果treenode检查
foreach (treenode node in treeview.nodes)
{
if (node.checked == true)
{
"change the color of the node"
}
}
我用来检查下面的节点编码。但没有标签检查节点
protected void TreeView1_TreeNodeCheckChanged(object sender, TreeNodeEventArgs e)
{
if (e.Node.ChildNodes.Count > 0)
{
CheckAllChildNodes(e.Node, e.Node.Checked);
}
if (e.Node.ChildNodes.Count == 0)
{
CheckAllParentNodes(e.Node);
}
}
private void CheckAllChildNodes(System.Web.UI.WebControls.TreeNode treeNode, bool nodeChecked)
{
foreach (System.Web.UI.WebControls.TreeNode node in treeNode.ChildNodes)
{
node.Checked = nodeChecked;
if (node.ChildNodes.Count > 0)
{
this.CheckAllChildNodes(node, nodeChecked);
}
}
}
private void CheckAllParentNodes(System.Web.UI.WebControls.TreeNode treeNode)
{
if (treeNode.Parent != null)
{
if (treeNode.Checked == false)
{
treeNode.Parent.Checked = false;
CheckAllParentNodes(treeNode.Parent);
}
}
}
请帮我解决这件事情的颜色变化..
此代码将更改上次选定节点的颜色,请问您在找什么? – MSUH
它将在单个节点上工作。但假设我检查了父节点想要更改该子节点的颜色也。这一个是解决另一个问题。感谢您的支持 – soundy
您始终可以遍历父级的子节点,并使用相同的逻辑来更改子节点的颜色。如果“lastnode”是父节点,它必须有lastnode.ChildNodes> 0 – MSUH