有一个tree view点击叶子节点的check box 可以被选中, 现在想把选择的节点的ID返回,因为刚接触C# 不知道这样的方法如何写?最好能够有个实例参考,谢谢~!

解决方案 »

  1.   

     if (tvRoles.SelectedNode != null)
                {
                    List<string> nodeList = new List<string>();                        GetAllCheckedNodes(tvModules.Nodes, nodeList);                List<string> permissionList = new List<string>();                       foreach (ListViewItem item in lstViewPermission.CheckedItems)
                    {
                        permissionList.Add(item.Tag.ToString());
                    }
    }   public void GetAllCheckedNodes(TreeNodeCollection nodes, List<string> nodeList)
            {
                foreach (TreeNode node in nodes)
                {
                    if (node.Checked == true)
                    {
                        nodeList.Add(node.Tag.ToString());
                    }
                    GetAllCheckedNodes(node.Nodes, nodeList);
                }
            }
      

  2.   


    前台代码
     <asp:TreeView ID="TreeView1" runat="server" ShowCheckBoxes="All">
      <Nodes>
      <asp:TreeNode Text="1" Value="1">
      <asp:TreeNode Text="1-1" Value="1-1"></asp:TreeNode>
      </asp:TreeNode>
      <asp:TreeNode Text="2" Value="2">
      <asp:TreeNode Text="2-1" Value="2-1"></asp:TreeNode>
      <asp:TreeNode Text="2-2" Value="2-2"></asp:TreeNode>
      </asp:TreeNode>
      <asp:TreeNode Text="3" Value="3">
      <asp:TreeNode Text="3-1" Value="3-1"></asp:TreeNode>
      <asp:TreeNode Text="3-2" Value="3-2">
      <asp:TreeNode Text="3-2-2" Value="3-2-2"></asp:TreeNode>
      </asp:TreeNode>
      </asp:TreeNode>
      </Nodes>
      </asp:TreeView>
      <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
    后台代码
    protected void Button1_Click(object sender, EventArgs e)
      {
      foreach (TreeNode n in this.TreeView1.Nodes)
      {
      if (n.ChildNodes.Count > 0)
      GetSelectedValue(n.ChildNodes);
      if (n.Checked)
      {
      Response.Write(n.Text);
      Response.Write("<br/>");
      }
      }
      }
      void GetSelectedValue(TreeNodeCollection tc)
      {
      foreach (TreeNode n in tc)
      {
      if (n.ChildNodes.Count > 0)
      GetSelectedValue(n.ChildNodes);
      if (n.Checked)
      {
      Response.Write(n.Text);
      Response.Write("<br/>");
      }
      }
      } 
      

  3.   

    是winform 吗?  可以这样:     
               //赋值       
               for (int i = 0; i < 10; i++)
                {
                    TreeNode tn = new TreeNode();
                    tn.Text = i.ToString();
                    tn.Tag = i.ToString() + "id";
                    treeView1.Nodes.Add(tn);
                }//取得选中的节点id。
    string strid = treeView1.SelectedNode.Tag.ToString();
      

  4.   

    是winform的,后台方法应该是怎样的?
      

  5.   

    http://www.cnblogs.com/soveran/archive/2006/06/05/417473.html
    参考
      

  6.   

    在加载treeview的nodes节点时,将id存入到nodes的tag中
    TreeNode tn =tnPrt.add("");
    tn.Tag = “id”