如何取消选中treeview节点中的所有复选框?

时间:2013-10-30 12:18:10

标签: asp.net treeview

我正在使用asp.net中的应用程序。我使用树视图来显示Category.After将已检查的节点值存储到数据库中后,我想取消选中所有树视图节点。为此,我有以下代码:

foreach (TreeNode node in TreeView1.CheckedNodes)
        {
            node.Checked=false;

        }

但显示错误: 收集被修改;枚举操作可能无法执行

请帮帮我。 谢谢!

5 个答案:

答案 0 :(得分:1)

//foreach (TreeNode node in TreeView1.CheckedNodes)
for(int i=0; i<TreeView1.CheckedNodes.Count; i++)
{
   TreeNode node = TreeView1.CheckedNodes[i];
   node.Checked = false;
}

答案 1 :(得分:1)

foreach 只读,您无法将收藏更改为foreach。
你必须使用 for loop

for (int i = 0; i < TreeView1.Nodes.Count; i++)
{
     TreeView1.Nodes[i].Checked = false;
}

答案 2 :(得分:1)

每次传递都会重新评估CheckedNodes.Count变量。所以只需清除0索引处的复选框即可。

int tvCT;
tvCT = TreeView1.CheckedNodes.Count;
if (tvCT > 0)
{
    for (int i = 0; i < tvCT; i++)
    {
        TreeNode node = TreeView1.CheckedNodes[0];
        node.Checked = false;
    }
}

答案 3 :(得分:1)

while (TreeView1.CheckedNodes.Count > 0)
{
    TreeView1.CheckedNodes[0].Checked = false;
}

这是一个非常简单的块,对我有用。

答案 4 :(得分:0)

 foreach (TreeNode node in TreeView1.Nodes)
            {
                node.Checked = false;
                foreach (TreeNode item1 in node.ChildNodes)
                {
                    item1.Checked = false;

                    foreach (TreeNode item2 in item1.ChildNodes)
                    {
                        item2.Checked = false;
                    }
                }
            }

检查它.....!这是工作