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;
}
{
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;
}