表:
u_ident  realName  c_ident  cName
25        李婕       1        诺亚
27        佳         1        诺亚
1         李永       3        移动想实现以下结果:
----------------
诺亚
     李婕
     佳移动
     李永
----------------
哪位做过,请指点一下,如果再能实现checkBox就更好了!

解决方案 »

  1.   

    一般的Treeview的存储表格式为(id,pid,name),详情请看
    http://www.cnblogs.com/lifw/articles/1609783.html
    有图有真相
      

  2.   

    至于checkbox可以选择treeview的checkboxs属性为true;
      

  3.   

    cName对应的编号是c_ident(应该是唯一)
    那你就可以通过c_ident来查realName先查询出所有的cName绑定到treeview,在根据c_ident查询出realName绑定到cName节点的子节点上。。
      

  4.   

    这里有个例子,可以参看参考
    http://blog.csdn.net/WTPMCheng/archive/2009/07/02/4315813.aspx节点选中与checkbox可以去参考下
    http://www.cnblogs.com/virusswb/archive/2008/08/06/1261845.html
      

  5.   

            private DataTable dtSource = YourDataTable;                      // 源表
            private string strBefDept = "-1";        /// <summary>
            /// 创建部门结点
            /// </summary>
            /// <param name="lsbNode">根结点名称</param>
            private void BuildTree(TreeNode lsbNode)
            {
        this.lvModel.CheckBoxes = True; // 显示CheckBox            foreach (DataRow dr in this.dtSource.Rows)
                {
                    if (strBefDept.Equals(dr["cName"].ToString()))
                        continue;                strBefDept = dr["cName"].ToString();
                    TreeNode sublst = new TreeNode(strBefDept.Equals(string.Empty) ? "NULL" : strBefDept);
                    sublst.ImageIndex = sublst.SelectedImageIndex = 1;
                    lsbNode.Nodes.Add(sublst);                string strFilter = string.Format("cName {0}", strBefDept.Equals(string.Empty) ? "IS null" : "= '" + strBefDept + "'");                BuildChildTree(strFilter, sublst);
                }
            }
            /// <summary>
            /// 创建子结点
            /// </summary>
            /// <param name="strFilter">过滤表达式</param>
            /// <param name="sublst">部门结点</param>
            private void BuildChildTree(string strFilter, TreeNode sublst)
            {
                string strName = string.Empty;
                foreach (DataRow dr in this.dtSource.Select(strFilter))
                {
                    strName = string.Format("    :{0}", dr["realName"].ToString());
                    TreeNode childNode = new TreeNode(strName);
                    childNode.ImageIndex = childNode.SelectedImageIndex = 2;
                    sublst.Nodes.Add(childNode);
                }
            }