常用方法-MIS系统常用的树菜单
今天公司没什么事做,就写了个树菜单的DEMO,以前都是用循环进行邦定的,由于,不能无限的添加菜单,所以,就重新写了一个,用递归的方式。
下以是据体的操作步骤:
数据库设计:
CREATE TABLE [dbo].[Tbl_Menu](
[menu_id] [int] IDENTITY(1,1) NOT NULL,//id
[menu_pid] [int] NULL,--------------------父ID
[menu_name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,---------名子
[menu_desc] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,--------描述
[menu_orderId] [int] NULL,---------排序ID
[menu_level] [int] NULL,------------菜单所在层次
[menu_createTime] [datetime] NULL-------时间
) ON [PRIMARY]
程序代码:
下以是据体的操作步骤:
数据库设计:
CREATE TABLE [dbo].[Tbl_Menu](
[menu_id] [int] IDENTITY(1,1) NOT NULL,//id
[menu_pid] [int] NULL,--------------------父ID
[menu_name] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,---------名子
[menu_desc] [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,--------描述
[menu_orderId] [int] NULL,---------排序ID
[menu_level] [int] NULL,------------菜单所在层次
[menu_createTime] [datetime] NULL-------时间
) ON [PRIMARY]
程序代码:
1
protected void Page_Load(object sender, EventArgs e)
2
{
3
PageDataBind_Menu();
4
}
5![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
private void PageDataBind_Menu()
7
{
8
string strSql = "select * from dbo.Tbl_Menu ";
9
DataTable dt = SqlHelper.ExecuteDataset(ConnectionStringManager.ConnectionStringRead, CommandType.Text, strSql).Tables[0];
10![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
dt.DefaultView.RowFilter = "menu_pid=0";
13
14
for (int i = 0; i < dt.DefaultView.Count; i++)
15
{
16
ddlMenu.Items.Add("*" + dt.DefaultView[i]["menu_name"].ToString());
17
GetChildNode(dt, dt.DefaultView[i]["menu_id"].ToString());
18
}
19![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
}
22![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
24
private string GetChildNode(DataTable dt, string _parentNodeId)
25
{
26
string name = string.Empty;
27
dt.DefaultView.RowFilter = "menu_pid=" + _parentNodeId;
28![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
if (dt.DefaultView.Count > 0)
30
{
31
for (int i = 0; i < dt.DefaultView.Count; i++)
32
{
33
name = dt.DefaultView[i]["menu_name"].ToString();
34
switch (Convert.ToInt32(dt.DefaultView[i]["menu_level"].ToString()))
35
{
36
case 1:
37
ddlMenu.Items.Add(" * " + name);
38
break;
39
case 2:
40
ddlMenu.Items.Add(" * * " + name);
41
break;
42
case 3:
43
ddlMenu.Items.Add(" * * * " + name);
44
break;
45
case 4:
46
ddlMenu.Items.Add(" * * * * " + name);
47
break;
48
case 5:
49
ddlMenu.Items.Add(" * * * * * " + name);
50
break;
51
}
52
GetChildNode(dt, dt.DefaultView[i]["menu_id"].ToString());
53
dt.DefaultView.RowFilter = "menu_pid=" + _parentNodeId;
54
}
55
return "";
56
}
57
else
58
{
59
return "";
60
}
61
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
28
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
29
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
30
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
31
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
32
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
33
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
34
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
35
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
36
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
37
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
38
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
39
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
40
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
41
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
42
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
43
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
44
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
45
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
46
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
47
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
48
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
49
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
50
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
51
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
52
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
53
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
54
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
55
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
56
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
57
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
58
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
59
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
60
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
61
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
专注于