//做出房源树
string strSql = "Select ID,Name From Corp "
+ "Where DoFlag=1 And ID="+iCorpID.ToString(); DataTable dtCorp = DataCenter.GetDataTable(strSql); for(int i=0;i<dtCorp.Rows.Count;i++)
{
/*将公司加在树的第一层*/
TreeNode trnCorp = new TreeNode();
trnCorp.Text = dtCorp.Rows[i]["Name"].ToString();
trnCorp.Target = "frmRgt";
trnCorp.ImageUrl = "../../Img/key.gif";
trnCorp.NavigateUrl = "./Comu/Default.aspx?id="+dtCorp.Rows[i]["ID"].ToString();
trnCorp.Expanded = true;
trvAptm.Nodes.Add(trnCorp); /*将小区加在所属公司下*/ string strComu = "Select ID,Num,Name From Community Where DoFlag=1 And CorpID="+dtCorp.Rows[i]["ID"].ToString()+" Order by ID DESC";
DataTable dtComu = DataCenter.GetDataTable(strComu);
for(int j=0;j<dtComu.Rows.Count;j++)
{
TreeNode trnComu = new TreeNode();
trnComu.Text = dtComu.Rows[j]["Name"].ToString();
trnComu.Target = "frmRgt";
trnComu.ImageUrl = "../../Img/note.gif";
trnComu.NavigateUrl = "./Build/Default.aspx?id="+dtComu.Rows[j]["ID"].ToString();
trnCorp.Nodes.Add(trnComu); /*将楼房加在所属小区下*/
string strBuild = "Select ID,Num,Name From Building Where DoFlag=1 And ComuID="+dtComu.Rows[j]["ID"].ToString()+" Order by Num Asc";
DataTable dtBuild = DataCenter.GetDataTable(strBuild);
for(int k=0;k<dtBuild.Rows.Count;k++)
{
TreeNode trnBuild = new TreeNode();
trnBuild.Text = dtBuild.Rows[k]["Name"].ToString();
trnBuild.Target = "frmRgt";
trnBuild.ImageUrl = "../../Img/housey.gif";
trnBuild.NavigateUrl = "./Apartment/Default.aspx?id="+dtBuild.Rows[k]["ID"].ToString(); trnComu.Nodes.Add(trnBuild);
}
}给你我的一段代码,你参考参考,
string strSql = "Select ID,Name From Corp "
+ "Where DoFlag=1 And ID="+iCorpID.ToString(); DataTable dtCorp = DataCenter.GetDataTable(strSql); for(int i=0;i<dtCorp.Rows.Count;i++)
{
/*将公司加在树的第一层*/
TreeNode trnCorp = new TreeNode();
trnCorp.Text = dtCorp.Rows[i]["Name"].ToString();
trnCorp.Target = "frmRgt";
trnCorp.ImageUrl = "../../Img/key.gif";
trnCorp.NavigateUrl = "./Comu/Default.aspx?id="+dtCorp.Rows[i]["ID"].ToString();
trnCorp.Expanded = true;
trvAptm.Nodes.Add(trnCorp); /*将小区加在所属公司下*/ string strComu = "Select ID,Num,Name From Community Where DoFlag=1 And CorpID="+dtCorp.Rows[i]["ID"].ToString()+" Order by ID DESC";
DataTable dtComu = DataCenter.GetDataTable(strComu);
for(int j=0;j<dtComu.Rows.Count;j++)
{
TreeNode trnComu = new TreeNode();
trnComu.Text = dtComu.Rows[j]["Name"].ToString();
trnComu.Target = "frmRgt";
trnComu.ImageUrl = "../../Img/note.gif";
trnComu.NavigateUrl = "./Build/Default.aspx?id="+dtComu.Rows[j]["ID"].ToString();
trnCorp.Nodes.Add(trnComu); /*将楼房加在所属小区下*/
string strBuild = "Select ID,Num,Name From Building Where DoFlag=1 And ComuID="+dtComu.Rows[j]["ID"].ToString()+" Order by Num Asc";
DataTable dtBuild = DataCenter.GetDataTable(strBuild);
for(int k=0;k<dtBuild.Rows.Count;k++)
{
TreeNode trnBuild = new TreeNode();
trnBuild.Text = dtBuild.Rows[k]["Name"].ToString();
trnBuild.Target = "frmRgt";
trnBuild.ImageUrl = "../../Img/housey.gif";
trnBuild.NavigateUrl = "./Apartment/Default.aspx?id="+dtBuild.Rows[k]["ID"].ToString(); trnComu.Nodes.Add(trnBuild);
}
}给你我的一段代码,你参考参考,
第一层 的树结点加在 树上,后面几层加在上一层的 Node上。
下一层的数据表DataTable的抽取条件是上一层数据的ID.
Dim ds As DataSet = New DataSet()
Dim conn As OleDbConnection
conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dATABASE\MYTREE.mdb"))
Dim mycommand As OleDbDataAdapter
mycommand = New OleDbDataAdapter("select * from tree where TreeNode='" + NodeText + "' order by NodeNumber asc", conn)
conn.Open()
mycommand.Fill(ds)
Dim i As Integer
'===根结点数
For i = 0 To ds.Tables(0).Rows.Count - 1
Dim myTreeNode As New TreeNode()
myTreeNode.Text = ds.Tables(0).Rows(i).Item(1)
myTreeNode.ImageUrl = "images/folderclosed.gif"
myTreeNode.ExpandedImageUrl = "images/folderopen.gif"
TreeView1.Nodes.Add(myTreeNode)
而是数据结构的问题。
需要做个连表查询或是视图。