怎样遍历treeview,并在叶子节点设置其NavigateUrl?其它节点不设置NavigateUrl.

解决方案 »

  1.   

    it is easy.
    give every leaf a property then all is ok
      

  2.   

    //遍历根节点
    private void ConstructTree(int commentID)
    {
       //获得url
      rootNode.NavigateUrl =  "ShowComment.aspx?commentID="+moduleView[i].Row["SCID"].ToString();
    //递归子节点
    RecursionTreeNode(moduleView[i].Row["SCID"].ToString(),rootNode);}
    //递归子节点
    private void RecursionTreeNode(string ParentModuleID,TreeNode rootNode)
    {
    RecursionTreeNode(ParentModuleID,tempNode);
    }
      

  3.   

    hhbeginer(羅严克拉姆)
    谢谢你的代码,我试试看:)
      

  4.   

    hhbeginer(羅严克拉姆)由于本人技术上的不争气:)   还是麻烦你把全部代码贴出来吧!!
      

  5.   

    private void ConstructTree(int commentID)
    {



    try
    {
    treeModuleFun.Nodes.Clear();
    // 获得所有模块信息
    ds =commentBus.GetCommentInfo(commentID);
    DataView moduleView = ds.Tables[0].DefaultView;

    // 首先取得所有根模块
    //moduleView.RowFilter = "ParentID" + "='-1'";
    moduleView.Sort = "AddTime";
    for(int i = 0;i < moduleView.Count;i++)
    {
    TreeNode rootNode = new TreeNode();
    // 给节点绑定显示值]
    if(moduleView[i].Row["Content"].ToString().Length>25)
    {
    rootNode.Text = "<font color=white>"+moduleView[i].Row["Content"].ToString().Substring(0,25)+"......</font>";
    }
    else
    {
    rootNode.Text = "<font color=white>"+moduleView[i].Row["Content"].ToString()+"</font>"; 
    }

    // 展开时显示的图片
    rootNode.ExpandedImageUrl = "/WebUI/images/Show.gif";
    // 显示的图片
    rootNode.ImageUrl = "/WebUI/images/Hide.gif";
    // 默认根结点为展开
    if(commentID == int.Parse(moduleView[i].Row["SCID"].ToString()))
    rootNode.Expanded = true;
    else
    rootNode.Expanded = false;
    // 设置节点的目标窗体
    // rootNode.Target = strTarget;
    // 设置节点的URL
    rootNode.NavigateUrl =  "ShowComment.aspx?commentID="+moduleView[i].Row["SCID"].ToString();
    // 在树控件中添加根节点
    treeModuleFun.Nodes.Add(rootNode);
    // 递归添加根节点的子节点
    RecursionTreeNode(moduleView[i].Row["SCID"].ToString(),rootNode);
    }

    }
    catch(Exception ex)
    {
    lblContent.Text  = ex.ToString();
    }
    }
      

  6.   

    /// <summary>
    /// 递归取得子节点
    /// </summary>
    /// <param name="ParentModuleID">父节点ID</param>
    /// <param name="rootNode"></param>
    private void RecursionTreeNode(string ParentModuleID,TreeNode rootNode)
    { SpecialCommentBus commentBus = new SpecialCommentBus();
    //获得所有子ID
    DataSet dsNode = commentBus.GetCommentNode(int.Parse(ParentModuleID));
    try
    {
    foreach(DataRow row in dsNode.Tables[0].Rows)
    {
    TreeNode tempNode = new TreeNode();
    // 给节点绑定显示值
    if(row["Content"].ToString().Length>25)
    {
    tempNode.Text = "<font color=white>"+row["Content"].ToString().Substring(0,25)+"......</font>";
    }
    else
    {
    tempNode.Text = "<font color=white>"+row["Content"].ToString()+"</font>";
    }
    // 添加子节点
    rootNode.Nodes.Add(tempNode);
    rootNode.Expanded = true;
    // 节点显示图片
    tempNode.ImageUrl = "/WebUI/images/text.gif";
    // 设置节点的目标窗体
    //tempNode.Target = strTarget;
    // 设置节点的URL
    tempNode.NavigateUrl = "ShowComment.aspx?commentID="+row["SCID"].ToString();
    ParentModuleID = row["SCID"].ToString();
    // 递归添加子节点
    RecursionTreeNode(ParentModuleID,tempNode);
    }
    }
    catch(Exception ex)
    {
    lblContent.Text  = ex.ToString();
    }
    }
      

  7.   

    数据库主要是设个ID 和parentID 就好了