递归 无限级分类
数据库三个字段 分别为 ClassID,ParentClassID,ClassName
链接数据库我用的是一个类 想测试的朋友自己建个库 写个链接
public
partial
class
index : System.Web.UI.Page
... { DataBase db = new DataBase();
SqlDataReader dr;
SqlDataReader drChlid;
string Echo = "";
protected void Page_Load(object sender, EventArgs e)
...{
dr = db.RunProcGetReader("select ClassID,ParentClassID,ClassName from class where ParentClassID is null");
while(dr.Read())
...{
Echo = Echo + "<div><label id="" + dr["ClassID"].ToString().Trim() + "">+" + dr["ClassName"].ToString().Trim() + "</label> ";
Child(dr["ClassID"].ToString().Trim(), "|-");
}
dr.Close();
Literal1.Text = Echo;
}
protected void Child(string ID,string StrDis)
...{
drChlid = db.RunProcGetReader("select ClassID,ParentClassID,ClassName from class where ParentClassID =" + ID);
while (drChlid.Read())
...{
Echo = Echo + " <div><label id="" + drChlid["ClassID"].ToString().Trim() + "">" + StrDis + drChlid["ClassName"].ToString().Trim() + "</label> ";
Child(drChlid["ClassID"].ToString().Trim(), "| " + StrDis);
}
//drChlid.Close();
}
}
... { DataBase db = new DataBase();
SqlDataReader dr;
SqlDataReader drChlid;
string Echo = "";
protected void Page_Load(object sender, EventArgs e)
...{
dr = db.RunProcGetReader("select ClassID,ParentClassID,ClassName from class where ParentClassID is null");
while(dr.Read())
...{
Echo = Echo + "<div><label id="" + dr["ClassID"].ToString().Trim() + "">+" + dr["ClassName"].ToString().Trim() + "</label> ";
Child(dr["ClassID"].ToString().Trim(), "|-");
}
dr.Close();
Literal1.Text = Echo;
}
protected void Child(string ID,string StrDis)
...{
drChlid = db.RunProcGetReader("select ClassID,ParentClassID,ClassName from class where ParentClassID =" + ID);
while (drChlid.Read())
...{
Echo = Echo + " <div><label id="" + drChlid["ClassID"].ToString().Trim() + "">" + StrDis + drChlid["ClassName"].ToString().Trim() + "</label> ";
Child(drChlid["ClassID"].ToString().Trim(), "| " + StrDis);
}
//drChlid.Close();
}
}