当前位置:编程学习 > C#/ASP.NET >>

如何将无限级分类在ListBox1中显示?

小弟有张表branch

branch_dm,branch_dm_sj,branch_mc
1,0,'办公室'
21,2,'人事科劳动组'
11,1,'办公室小车队'
12,1,'办公室大车队'
2,0,'人事科'
211,21,'人事科劳动组SB分组'
3,0,'科技处'
... ...

请问如何才能在LISTBOX1中象如下格式显示?




办公室
    办公室小车队
    办公室大车队
人事科
    人事科劳动组
        人事科劳动组SB分组
科技处
...



谢谢各位弟兄
--------------------编程问答--------------------
public static DataTable GetTypeTree(DataTable tbs, string ValueField, string TextField, string ParentField)
    {
        DataTable tb = new DataTable();
        tb.Columns.Add(ValueField, Type.GetType("System.String"));
        tb.Columns.Add(TextField, Type.GetType("System.String"));

        //Level,指定层级,加入新row时根据其上层row加一
        tb.Columns.Add("Level", Type.GetType("System.Int32"));
        DataRow row;

        //先将顶级菜单放入tb
        DataRow[] TopRows = tbs.Select(ParentField.ToString() + @" = '0'");
        for (int i = 0; i < TopRows.Length; i++)
        {
            row = tb.NewRow();

            row[0] = TopRows[i][ValueField].ToString();//绑定列的Value
            row[1] = TopRows[i][TextField].ToString();//绑定列的Text
            row[2] = 0;//0为第一级 

            tb.Rows.Add(row);
        }

        DataRow[] rows;
        for (int i = 0; i < tb.Rows.Count; i++)//tb.Rows.Count这个数字也是不断的在增大的,因为不断的插入新行
        {
            // tb进行循环
            string strSpace = "";
            for (int j = 0; j < Convert.ToInt32(tb.Rows[i][2]); j++)
            {
                strSpace += "  ";
            }
            rows = tbs.Select(ParentField + "=" + "'" + tb.Rows[i][0].ToString() + "'");//父级编号为此行的id
            for (int j = rows.Length - 1; j >= 0; j--) //倒循环,结果可以正序
            {//循环嵌套对刚才的
                row = tb.NewRow();

                row[0] = rows[j][ValueField].ToString();//绑定列的Value
                row[1] = strSpace + "--" + rows[j][TextField].ToString();//绑定列的Text
                row[2] = Convert.ToInt32(tb.Rows[i][2]) + 1;

                tb.Rows.InsertAt(row, i + 1);
            }
        }
        return tb;
    }
--------------------编程问答--------------------
/// <summary>
    /// 树形结构的下拉列表显示
    /// </summary>
    /// <param name="tbs">树形结构数据源</param>
    /// <param name="ValueField">绑定列的Value</param>
    /// <param name="TextField">绑定列的Text</param>
    /// <param name="ParentField">数据源中表示父结点的字段名称</param>
    /// <returns></returns>


参数的注释给你,这个是绑定用的函数,我一般使用在下拉列表中 --------------------编程问答-------------------- UP。 --------------------编程问答-------------------- 太感谢了,能帮写一个吗?我新手,看不懂夜 --------------------编程问答-------------------- 大家再请明示一下,谢谢
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,