私の ASP.NET アプリケーションでは、チェック ボックスを有効にして Treeview コントロールを使用しました。そのツリービューで、ツリーノードをチェックした場合、チェックされた特定のノードで異なる色を表示したい。下記参照
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);
}
}
}
この問題を解決するのを手伝ってください..