我觉得还不如直接从数据库里读,转成XML再转为树型肯定很慢

解决方案 »

  1.   

    有可以参考一些免费下载的论坛的树形结构,分析它的表结构及代码(一般是asp的)。我以前接触过,现在代码也没了。现在也不会了。
      

  2.   

    请问是基于winform还是webform的控件??~
      

  3.   

    我也有想过
    可你有没有现成的代码
    给我看看......
    [email protected]
      

  4.   

    必须要用XML树形嵌套的文档为树形控件提控数据源吗?可以直接建立你的树型控件,不过你的数据表要略微做一下修改
      

  5.   

    不需要修改了,你可以这样试试表结构如下:
    NODID    (对应你的ID)
    PARENTID (对应你的GrandID)
    NODENAME (对应你的Name)
    ADDERSS  (对应你的Link)
    Img      (节点的图标)
    ImgEx    (节点的图标)public class WebForm1 : System.Web.UI.Page
    {
    protected Microsoft.Web.UI.WebControls.Toolbar Toolbar1;
    protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
    protected System.Web.UI.WebControls.Label a;
    protected connect_strings SqlCn;
              string CnString;
    protected System.Web.UI.WebControls.TextBox TextBox1;
    DataSet objDataSet = new DataSet(); private void Page_Load(object sender, System.EventArgs e) 
    {
    Class1 TestClass=new Class1();
    TestClass.TestString="fjdkls;a";            
    CnString=SqlCn.SQLConnectionString;
    if (!this.IsPostBack)
    {
    CreateDataSet();
    intiTree(TreeView1.Nodes,0);
    }
    }
    private void intiTree(TreeNodeCollection Nds , int parentId)
        {
    DataView dv=new DataView() ;
                //DataRowView drv;
    TreeNode tmpNd;
    int strId;
    dv.Table = objDataSet.Tables["TREE_INFO"];
    dv.RowFilter = "PARENTID='" + parentId + "'"; 

    foreach(DataRowView objRow in dv)
    {
                    tmpNd=new TreeNode();
    strId=(int)objRow["NODEID"];
    tmpNd.ID=strId.ToString();
    tmpNd.Text=objRow["NODENAME"].ToString();
    tmpNd.ExpandedImageUrl =objRow["ImgEx"].ToString();
    tmpNd.ImageUrl=objRow["Img"].ToString() ;
    tmpNd.NavigateUrl =objRow["Adderss"].ToString() ;
    Nds.Add(tmpNd);
    intiTree(Nds[Nds.Count-1].Nodes,strId);               
    }           
        }
     private void CreateDataSet() 
     {
                SqlConnection objCn=new SqlConnection(CnString);
    objCn.Open();
    string strSql  ="select * from TREE_INFO";
    SqlDataAdapter objAdapter=new SqlDataAdapter(strSql,objCn);
                objAdapter.Fill(objDataSet,"TREE_INFO");
     }
    }通过 intiTree(Nds[Nds.Count-1].Nodes,strId);  可以遍历所有节点 
      

  6.   

    xysophie(小葉子)太谢谢了,我也想了,就用程序方法来实现。不用什么鬼XML,XSLT 了,象原始人学的语言,一点也不爽。huanght(六毛) 
    是webform的。
      

  7.   

    为什么我在定义这句话的时候会报错呢?
    protected Microsoft.Web.UI.WebControls.TreeView TreeView1;WebControls下没有TreeView这个类??哪位能教一下我?
      

  8.   

    到微软的网站上下载这个控件
    里面包括四个控件
    treeview
    toolbar
    multipage
    tabscriphttp://msdn.microsoft.com/downloads/default.asp?url=/downloads/samples/internet/asp_dot_net_servercontrols/webcontrols/Default.asp