日期:2014-05-18  浏览次数:20887 次

求教treeview的遍历,在树节点被选中后其所有子节点也被选中。大家帮我!!
不在click事件中书写代码,因为需要在其他地方调用。
private   void   treeView1_AfterCheck(object   sender,   System.Windows.Forms.TreeViewEventArgs   e)
{  
            getcheck(treeView1.Nodes);  
}
private   void   getcheck(TreeNodeCollection   tc)
{
foreach(TreeNode   TNode     in   tc       )      
{      
if(TNode.Nodes.Count   !=   0)
{
TNode.Checked   =   treeView1.SelectedNode.Checked;
}
getcheck(TNode.Nodes);
}      

}
这个程序会陷入死循环,请问我该怎么写呢?

------解决方案--------------------
private List <int> GetAllNode(TreeNode node)
{
foreach (TreeNode n in node.Nodes)
{
int i = Convert.ToInt32(n.Tag);
nodes.Add(i);
GetAllNode(n);
}
return nodes;
}
------解决方案--------------------
用JS 实现效果会更好:
<asp:TreeView ID= "TreeView1 " runat= "server " onclick= "return OnTreeNodeChecked(event); " BackColor= "#C0C0FF " ShowLines= "True " Width= "213px " ShowCheckBoxes= "All ">
<Nodes>
<asp:TreeNode Text= "aaa " Value= "aaa ">
<asp:TreeNode Text= "a1 " Value= "a1 " > </asp:TreeNode>
<asp:TreeNode Text= "a2 " Value= "a2 " > </asp:TreeNode>
</asp:TreeNode>
<asp:TreeNode Text= "bbb " Value= "bbb " >
<asp:TreeNode Text= "b1 " Value= "b1 " > </asp:TreeNode>
<asp:TreeNode Text= "b2 " Value= "b2 " >
<asp:TreeNode Text= "b3 " Value= "b3 "> </asp:TreeNode>
<asp:TreeNode Text= "b4 " Value= "b4 "> </asp:TreeNode>
</asp:TreeNode>
</asp:TreeNode>
</Nodes>
<HoverNodeStyle BackColor= "#8080FF " Font-Underline= "True " />
<SelectedNodeStyle Font-Underline= "True " />
<NodeStyle Font-Underline= "True " />
</asp:TreeView>


------解决方案--------------------
续...

function OnTreeNodeChecked(e)
{

//debugger;
var ele = event.srcElement;

//debugger;
// ele.style.backgroundColor = "#6699ff ";;
ele.style.readOnly = true;

ele.setAttribute( "Title ", 'abc ');

if(ele.type== 'checkbox ')
{
var childrenDivID = ele.id.replace( 'CheckBox ', 'Nodes ');
var div = document.getElementById(childrenDivID);
if(div != null)
{
var checkBoxs = div.getElementsByTagName( 'INPUT ');
for(var i=0;i <checkBoxs.length;i++)
{
if(checkBoxs[i].type== 'checkbox ')
checkBo