在treeview的递归算法中,它是根据什么退出递归呢? 我也没写什么识别有没有下级结点的代码,怎么就可以了呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void InitMoldTree(TreeNodeCollection Node,string ParentID) { if(ParentID=="0") { myconn=new SqlConnection(Conn); myconn.Open(); SQL = "select * from Inst_MoldCode where MoldName<>'0' order by MoldCode asc"; Adapter = new SqlDataAdapter(SQL,Conn); data = new DataSet(); Adapter.Fill(data,"MoldCode"); myconn.Close(); } TreeNode TempNode; DataRow[] rows=data.Tables[0].Select("MoldParentCode='"+ParentID+"'"); foreach(DataRow row in rows) { TempNode=new TreeNode(); TempNode.ID=row["MoldCode"].ToString(); TempNode.Text=row["MoldName"].ToString(); TempNode.Target="main"; Node.Add(TempNode); InitMoldTree(TempNode.Nodes,TempNode.ID); } }这是我的代码,完全成功的,我是去copy下来的,我的意思是说我并没有去判断递归什么时候结束,递归为什么会智能的自动结束呢 foreach(DataRow row in rows)没行了,当然就结束了 在这之前,你要先了解递归的含义:递归是使函数调用其本身。不知你看到没有?foreach(DataRow row in rows){ TempNode=new TreeNode(); TempNode.ID=row["MoldCode"].ToString(); TempNode.Text=row["MoldName"].ToString(); TempNode.Target="main"; Node.Add(TempNode); InitMoldTree(TempNode.Nodes,TempNode.ID);}在这里,函数调用了本身: InitMoldTree(TempNode.Nodes,TempNode.ID);当 rows.Length == 0 时,foreach 将会进行不了,即函数将不会再次调用本身。递归也就结束了。 ssk32G 如何量产啊 不解:我的页面有时候会向流水一样移动 超简单的Javascript数字输入问题 vs2005无法从源码转到设计视图了 气愤:.Net 2.0的验证控件和Webmenu在虚拟主机上无法运行?????? 未将对象引用设置到对象的实例。 如果不制作安装包,需要往服务器上上传一些什么东东呢?? 100求解:asp.net在某个页面中定义一个static变量出现的问题 web班级在线点名考勤如何实现? 我按F11或F5时,老是说我没有权限调试,我怎样做才行? dropdownlist 为什么我在web.config里的设置<httpRuntimeout>过期时间没有作用
if(ParentID=="0")
{
myconn=new SqlConnection(Conn);
myconn.Open();
SQL = "select * from Inst_MoldCode where MoldName<>'0' order by MoldCode asc";
Adapter = new SqlDataAdapter(SQL,Conn);
data = new DataSet();
Adapter.Fill(data,"MoldCode");
myconn.Close();
}
TreeNode TempNode;
DataRow[] rows=data.Tables[0].Select("MoldParentCode='"+ParentID+"'");
foreach(DataRow row in rows)
{
TempNode=new TreeNode();
TempNode.ID=row["MoldCode"].ToString();
TempNode.Text=row["MoldName"].ToString();
TempNode.Target="main";
Node.Add(TempNode);
InitMoldTree(TempNode.Nodes,TempNode.ID);
}
}
这是我的代码,完全成功的,我是去copy下来的,我的意思是说我并没有去判断递归什么时候结束,递归为什么会智能的自动结束呢
递归是使函数调用其本身。不知你看到没有?
foreach(DataRow row in rows)
{
TempNode=new TreeNode();
TempNode.ID=row["MoldCode"].ToString();
TempNode.Text=row["MoldName"].ToString();
TempNode.Target="main";
Node.Add(TempNode);
InitMoldTree(TempNode.Nodes,TempNode.ID);
}
在这里,函数调用了本身: InitMoldTree(TempNode.Nodes,TempNode.ID);当 rows.Length == 0 时,foreach 将会进行不了,即函数将不会再次调用本身。
递归也就结束了。