TreeView常用操作[转]

最近做的项目用到了微软的树控件,所以我总结了部分树控件的用法。

遍历节点
void GetAllNodeText(TreeNodeCollection tnc)
{
 foreach(TreeNode node in tnc)
 {
  if(node.Nodes.Count!=0)
   GetAllNodeText(node.Nodes);
  Response.Write(node.Text + " ");
 }
}

建树
private void CreateTree(TreeNodeCollection folderTreeNodeCollection , string parentID)
{
  if (parentID=="")
  {
    dv.RowFilter= "ParentID is null";
  }
  else
  {
    dv.RowFilter= "ParentID="+"'"+parentID+"'";
  }
  foreach (DataRowView drv in dv)
  {
    TreeNode tn= new TreeNode();
    tn.Expanded= true ;
    tn.ID=drv.Row["TypeID"].ToString().Trim();
    tn.Text=drv.Row["TypeName"].ToString().Trim();
    folderTreeNodeCollection.Add(tn);
    CreateTree(tn.Nodes,tn.ID);
  }
}

遍历选中节点
private void getAllCheckedNode(TreeNodeCollection tnc)
{
  foreach (TreeNode tn in tnc)
  {
    if (tn.Checked== true )
    {
      Response.Write(tn.Text+””);
    }
    if (tn.Nodes.Count>0)
    {
      getAllCheckedNode(tn.Nodes);
    }
  }
}

选中或取消选中节点 , 自动选中或取消选中期子节点
private void CheckedChildNode(TreeNode tn)
{
  if (tn.Nodes.Count>0)
  {
    foreach (TreeNode tnn in tn.Nodes)
    {
      tnn.Checked=tn.Checked;
      CheckedChildNode(tnn);
    }
  }
}

调用方法
private void TreeView1_Check( object sender, Microsoft.Web.UI.WebControls.TreeViewClickEventArgs e)
{
    setAllCheckedNode(TreeView1.GetNodeFromIndex(e.Node));
}
原文地址:http://www.cnblogs.com/renrenqq/archive/2004/05/20/10512.aspx

本人在实际使用过程中曾经在.net framework 2.0环境中遇到用上述方法,构造树型结构,乱序的情况,经过查正和比对发现,是由于没有安装

.net framework 2.0 Service Pack 1造成的~!请各位注意安装补定。

posted on 2006-11-13 11:55  lhx  阅读(330)  评论(0)    收藏  举报