zoukankan      html  css  js  c++  java
  • asp.net无限级分类递归实现方法二

    public DataTable GetTable()
            
    {
                DataTable tb 
    = new DataTable();
                tb.Columns.Add(
    "bianhao", Type.GetType("System.String"));
                tb.Columns.Add(
    "name", Type.GetType("System.String"));
                tb.Columns.Add(
    "trainingType", Type.GetType("System.String"));
                
    //Level,指定层级,加入新row时根据其上层row加一
                tb.Columns.Add("Level", Type.GetType("System.Int32"));

                DataRow row;

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

                    row[
    0= TopRows[i]["bianhao"].ToString();
                    row[
    1= TopRows[i]["name"].ToString();
                    row[
    2= TopRows[i]["trainingType"].ToString();
                    row[
    3= 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][3]); j++)
                    
    {
                        
    //循环嵌套对刚才的 这个循环什么作用?wjy905
                        strSpace += "  ";
                    }

                    rows 
    = tbs.Select("parentType=" + "'" + tb.Rows[i]["bianhao"].ToString() + "'");//父类名称为此行的id
                    for (int j = rows.Length - 1; j >= 0; j--)//倒循环,结果可以正序
                    {
                        
    //对刚才的嵌套循环
                        row = tb.NewRow();
                        row[
    0= rows[j]["bianhao"].ToString();
                        row[
    1= strSpace + "--" + rows[j]["name"].ToString();
                        row[
    2= rows[j]["trainingType"].ToString();
                        row[
    3= Convert.ToInt32(tb.Rows[i][3]) + 1;
                        tb.Rows.InsertAt(row, i 
    + 1);
                    }

                }

                
    return tb;
            }
  • 相关阅读:
    7. 初识Python之函数
    6. 初识Python之dict和set
    5. 初识Python之循环语句
    4. 初识Python之条件语句
    3. 初识Python之列表
    原生js实现一个小小的轮波
    原生js实现弹幕
    js实现一个简单的学生管理系统
    js绘制时钟
    js实现的学生管理系统
  • 原文地址:https://www.cnblogs.com/wucf2004/p/770040.html
Copyright © 2011-2022 走看看