DataView dv = new DataView();
TreeNode tmpNd;
dv.Table = ds.Tables["tree"];
dv.RowFilter = "yn_bt="+"'"+parentId+"'";
foreach(DataRowView drv in dv)
  {
tmpNd = new TreeNode();
tmpNd.ID = drv["id"].ToString();
string isfile = drv["content"].ToString();//读出content
  if(isfile =="")  //表示是类型
{
tmpNd.ExpandedImageUrl = "../image/bookopen.gif";
tmpNd.ImageUrl = "../image/book.gif";
tmpNd.Text = drv["zd1"].ToString();

}
else//表示有文档
{
  tmpNd.ImageUrl = "../image/file.png";
  tmpNd.NavigateUrl = "viewclass.aspx?id="+drv["id"].ToString()+"";
  tmpNd.Text = drv["zd1"].ToString(); }
Nds.Add(tmpNd);
InitTree(tmpNd.Nodes,tmpNd.ID);请问我想在初始化的时候就显示树的第一及,也就是类型,该怎么做啊。

解决方案 »

  1.   

    tn.Expanded = true;
    ————————————————————
    这样的话就是全展开了啊
      

  2.   

    这个可以变通的来做,比如你加载树的时候不要全都一次性的加载完毕,可以先把根和第一层加载完成,其他的节点(叶子节点)在afterselected里面写代码展开。这样的话,你一出来就expand,这样的话就OK了!
      

  3.   

    hamadou(闵峰) 的方法好,要不然如果节点很多的话,你一下子把它们都加载过来会影响效率
      

  4.   

    执行FindInTree试试吧。private void FindInTree()
            {  
                foreach (TreeNode tn in TreeView1.Nodes)            
                {
                    if (tn.NavigateUrl.Length > 0)
                    {   
                        FindInTree(tn);
                    } 
                    else
                    {   
                        ExpandTree(tn);
                    }
                }
            }        private void FindInTree(TreeNode objTreeNode)
            {   
                foreach (TreeNode tn in objTreeNode.Nodes)            
                {
                    if (tn.NavigateUrl.Length > 0)
                    {
                        FindInTree(tn);
                    } 
                    else
                    {   
                        ExpandTree(tn);
                    }
                }
            }        private void ExpandTree(TreeNode objTreeNode)
            {   
                string strIndex = "0";            objTreeNode.Expanded = true;
                
                strIndex = objTreeNode.GetNodeIndex();            while (objTreeNode.Parent is TreeNode)
                {
                    if (objTreeNode.NavigateUrl.Length == 0)
                    {
                        objTreeNode = ((TreeNode)objTreeNode.Parent);
                        objTreeNode.Expanded = true;                
                    }                
                }
            }