会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
wucf2004的博客
asp.net和ajax
博客园
::
首页
::
新随笔
::
联系
::
订阅
::
管理
公告
asp.net无限级分类递归实现方法二
Posted on
2007-06-04 09:36
wucf2004
阅读(
1164
) 评论(
0
)
编辑
收藏
举报
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;
}
会员力量,点亮园子希望
刷新页面
返回顶部
Powered by:
博客园
Copyright © 2024 wucf2004
Powered by .NET 8.0 on Kubernetes