//做出房源树
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);
}
}给你我的一段代码,你参考参考,

解决方案 »

  1.   

    其实挺简单,做 几层 循环,就可以实现。
    第一层 的树结点加在 树上,后面几层加在上一层的 Node上。
    下一层的数据表DataTable的抽取条件是上一层数据的ID.
      

  2.   

    Dim NodeText As String = "-1"
            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)
      

  3.   

    这不是treeview的问题。
    而是数据结构的问题。
    需要做个连表查询或是视图。