将表设计如下:
表名:City
ID Name city_id ParentID
1 北京 BJ001 0
2 上海 SH001 0
3 海淀 S001 1
protected void Page_load()
{
if(!ispostback)
{
InitTree();
}
}
//获取数据
private DataTable GetAllData()
{
string s="select * from City";
SqlConnection con=new SqlConnection(".....");
SqlDataAdapter cmd=new SqlDataAdapter(s,con);
DataSet ds=new DataSet();
cmd.Fill(ds);
return ds.Tables[0];
}
private InitTree(TreeNodeColliction tns,string parentid)
{
DataView dv=GetAllData().DefaultView();
dv.RowFilter="Parentid="+Parentid;
TreeNode tn;
foreach(DataRowView drv in dv)
{
tn=new TreeNode();
tn.Text=drv["name"].ToString();
tn.ID=drv["id"].ToString();//Vs.net 2003中的表示
/* Vs.net 2005中的表示
tn.Value=drv["id"].Tostring(); */
//Vs.net 2003
tns.Add(tn);
InitTree(tn.Nodes,tn.ID);
/* Vs.net 2005中的表示
InitTree(tn.ChildNodes,tn.ID);*/
}
}
private void InitTree()
{
InitTree(TreeView1.Nodes,"0");
}