在我的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