treelist控件 即树状表格 有的也叫treelistview

解决方案 »

  1.   

    没听过,只有用过TreeView,估计你要自己写了
    其实也不难啊,动态生成表格,然后用css控制下
      

  2.   

    同意楼上~
       treeview 也是很不错的,微软开发的很智能化
    随便找点资料看下就会了
      

  3.   

    http://topic.csdn.net/t/20060919/22/5033512.html
      

  4.   

    就是treeview嘛,03的到微软下个去,05的里面自带!
      

  5.   

    当然不是treeview了。是树状表格。
      

  6.   

    /// <summary>
        /// 树形结构的列表显示
        /// </summary>
        /// <param name="tbs">树形结构数据源</param>
        /// <param name="ValueField">绑定列的Value</param>
        /// <param name="TextField">绑定列的Text</param>
        /// <param name="ParentField">数据源中表示父结点的字段名称</param>
        /// <param name="FillSpace">字段前显示的值</param>
        /// <returns>数据集合</returns>
        public static DataTable GetTreeList(DataTable tbs, string ValueField, string TextField, string ParentField,string FillSpace)
        {
            //Level,指定层级,加入新row时根据其上层row加一
            DataTable tbss = tbs.Copy();        DataTable tb = tbs.Clone();
            tb.Columns.Add("Level", Type.GetType("System.Int32"));        DataRow row;        //先将顶级菜单放入tb
            DataRow[] TopRows = tbss.Select(ParentField.ToString() + @" = '0'");
            for (int i = 0; i < TopRows.Length; i++)
            {
                row = tb.NewRow();
                for (int j = 0; j < tbss.Columns.Count; j++)
                {
                    row[j] = TopRows[i][j].ToString();
                }
                row["Level"] = 0;
                tb.Rows.Add(row);
            }        DataRow[] rows;
            for (int i = 0; i < tb.Rows.Count; i++)//tb.Rows.Count这个数字也是不断的在增大的,因为不断的插入新行
            {
                // tb进行循环
                string strSpace = "&nbsp;&nbsp;&nbsp;&nbsp;";
                for (int j = 0; j < Convert.ToInt32(tb.Rows[i]["Level"]); j++)
                {
                    strSpace += "&nbsp;&nbsp;&nbsp;&nbsp;";
                }
                rows = tbss.Select(ParentField + "=" + "'" + tb.Rows[i][ValueField].ToString() + "'");//父级编号为此行的id
                for (int j = rows.Length - 1; j >= 0; j--) //倒循环,结果可以正序
                {
                    //循环嵌套对刚才的
                    row = tb.NewRow();
                    for (int k = 0; k < tbss.Columns.Count; k++)
                    {
                        row[k] = rows[j][k].ToString();
                    }
                    row[TextField] = strSpace + FillSpace + rows[j][TextField].ToString();
                    row["Level"] = Convert.ToInt32(tb.Rows[i]["Level"]) + 1;
                    tb.Rows.InsertAt(row, i + 1);
                }
            }
            return tb;
        }这个是糊弄人的,倒是可以参考一下能否符合你的要求
      

  7.   

    gridview+treeview,VS自带的没有,Bindows框架里有,供楼主研究一下:
    http://www.bindows.net/bindows/html/bimain.html?Adf=http%3A%2F%2Fwww.bindows.net%2Fdemos%2F..%2Fbindows%2Ftest%2FBindowsTest.xml;AdfName=BindowsTest;Params=0
    点击GridView and trees选项卡下的tree2