问题如题谢谢大家!!!

解决方案 »

  1.   

    TreeNode tn = new TreeNode();
    tn.Expanded = false; 合并
    tn.Expanded = true;  打开
      

  2.   

    //建树的基本思路是:从根节点开始递归调用显示子树 
    private void InitTree(TreeNodeCollection Nds,string parentId)
    {
    DataView dv=new DataView();
    TreeNode tmpNd;
    string intId;
    dv.Table=ds.Tables["tree"];
    if (parentId == "")
    {
    dv.RowFilter = "ParentId is null";
    }
    else
    {
    dv.RowFilter = "ParentId = "+parentId;
    }
    //dv.RowFilter="ParentId='" + parentId + "'";
    foreach(DataRowView drv in dv)
    {
    tmpNd=new TreeNode();
    tmpNd.ID=drv["NodeId"].ToString();
    tmpNd.Text=drv["NodeName"].ToString();
    tmpNd.ImageUrl="images/"+drv["Icon"].ToString();
    tmpNd.NavigateUrl="/"+drv["Address"].ToString();
    Nds.Add(tmpNd);
    intId=drv["ParentId"].ToString();
    InitTree(Nds[Nds.Count-1].Nodes,tmpNd.ID); }
    }
      

  3.   

    搞定啦谢谢 lcj20040909(阿Q的辫子)
      

  4.   

    如果你要在你初始化树的时候指定树的节点为打开状态 我的做法是在数据库里面家一个字段表示是否打开 如果是则在 foreach 里面 添加:
    tmpNd.Expanded  = ( drv["IsExpanded"].tostring() = "打开" ) ? true : false;
    如果只是点+的时候打开则不必要 上面代码就能够实现
      

  5.   

    如果你需要在初始化的时候定义哪些节点的状态是打开的
    我的做法是:在数据库里面加一个字段 表示打开或者关闭
    在foreach里面加一句
    tmpNd.Expanded = ( drv["IsExpanded"].ToString() == "打开" ) ? true : false;
    如果只是一般的显示 就是 点 + 的时候才打开 则没有必要你的这段代码就足够了