1
1:创建一个数据库并创建表Base_Menu
2
CREATE TABLE [dbo].[Base_Menu](
3
[menuid] [int] IDENTITY(1,1) NOT NULL,
4
[menunum] [int] NOT NULL,
5
[Name] [varchar](50) NOT NULL CONSTRAINT [DF_Base_Menu_MenuName] DEFAULT (''),
6
[URL] [varchar](50) NOT NULL CONSTRAINT [DF_Base_Menu_Reserve] DEFAULT (''),
7
[Parentid] [int] NULL,
8
[LogoUrl] [varchar](50) NULL,
9
CONSTRAINT [PK__Base_Menu__69C6B1F5] PRIMARY KEY CLUSTERED
10
(
11
[menuid] ASC
12
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],
13
CONSTRAINT [QU_Base_Menu_menunum] UNIQUE NONCLUSTERED
14
(
15
[menunum] ASC
16
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
17
) ON [PRIMARY]
18![](/Images/OutliningIndicators/None.gif)
19
GO
20![](/Images/OutliningIndicators/None.gif)
21![](/Images/OutliningIndicators/None.gif)
22
2:创建sql过程查找上级目录
23
ALTER FUNCTION [dbo].[IsMenuParent](@ParentID INT, @Menuid INT)
24
RETURNS TINYINT
25
BEGIN
26
DECLARE @Ret TINYINT
27
DECLARE @P INT
28
WHILE @Ret IS NULL ----@Ret是返回值变量
29
BEGIN
30
SELECT @P = ParentID FROM base_menu WHERE Menuid = @Menuid
31
IF @P = @ParentID
32
BEGIN --如果父节点等于@ParentID,就表示@ParentID是@TypeID的父节点,所以就将返回值设置成1
33
SET @Ret = 1
34
END
35
ELSE
36
BEGIN
37
IF @P = 0 OR @P IS NULL
38
BEGIN --如果父节点等于-1,就表示已经查找到根节点,再也没有数据查找了,也就是说最终没找到,所以将返回值设成0
39
SET @Ret = 0
40
END
41
ELSE
42
BEGIN --如果父节点也不等于-1,表示当前没有找到根节点,还要继续查找父节点的父节点,所以将@P的值赋给@TypeID来继续查找
43
SET @Menuid = @P
44
END
45
END
46
END
47
RETURN @Ret
48
END
49![](/Images/OutliningIndicators/None.gif)
50
3:在web.config配置文件中写:
51
</connectionStrings>
52
<appSettings>
53
<add key="conStr" value="server=192.200.188.208;uid=sa;pwd=;database=数据库名字"/>
54
</appSettings>
55![](/Images/OutliningIndicators/None.gif)
56
4:在创建一个SqlHelper类做超作数据库的
57
using System;
58
using System.Data.SqlClient;
59
using System.Data;
60
using System.Collections;
61
using System.Configuration.Assemblies;
62
using System.Configuration;
63
namespace SqlData
64
{
65
public class SqlHelper
66
{
67
/// <summary>
68
///通过连接数据库的方法ConfigurationSettings.AppSettings()获取字符传为的键:conStr
69
/// </summary>
70
public static readonly string ConStr = ConfigurationSettings.AppSettings["conStr"].ToString();
71
public static void FillDataTable(string sql, DataTable dt, params SqlParameter[] param)
72
{
73
SqlConnection con = new SqlConnection(ConStr);
74
if (con.State == ConnectionState.Closed)
75
{
76
con.Open();
77
}
78
SqlDataAdapter ada = new SqlDataAdapter(sql, con);
79
foreach (SqlParameter p in param)
80
ada.SelectCommand.Parameters.Add(p);
81
ada.Fill(dt);
82
if (con.State == ConnectionState.Open)
83
{
84
con.Close();
85
con.Dispose();
86
}
87
}
88
}
89
}
90![](/Images/OutliningIndicators/None.gif)
91![](/Images/OutliningIndicators/None.gif)
92
3:在再另一个ConMenuSql类中写SQL语句
93
/// <summary>
94
/// 导航采单
95
/// </summary>
96
public const string SELECT_MENU_NAVIGATION_MENUS = "SELECT M.* FROM BASE_MENU AS M INNER JOIN BASE_MENU AS P ON DBO.[ISMENUPARENT](M.MENUID,P.MENUID) =1 OR M.MENUID=@0 WHERE P.MENUID=@1 AND P.NAME=@2";
97![](/Images/OutliningIndicators/None.gif)
98![](/Images/OutliningIndicators/None.gif)
99
4:创建一个SelectHouseInfo类写如下方法:
100
using System;
101
using System.Data;
102
using System.Configuration;
103
using System.Web;
104
using System.Web.Security;
105
using System.Web.UI;
106
using System.Web.UI.WebControls;
107
using System.Web.UI.WebControls.WebParts;
108
using System.Web.UI.HtmlControls;
109
using System.Drawing;
110![](/Images/OutliningIndicators/None.gif)
111
/// <summary>
112
/// SelectHouseInfo 的摘要说明
113
/// </summary>
114
public class SelectHouseInfo
115
{
116
public SelectHouseInfo()
117
{
118![](/Images/OutliningIndicators/InBlock.gif)
119
}
120![](/Images/OutliningIndicators/InBlock.gif)
121
/// <summary>
122
///定义方法做导航
123
/// 有多少级就展开多少级
124
/// </summary>
125
/// <param name="typeid"></param>
126
/// <param name="typesname"></param>
127
public void BuildNavigationMenu(Menu menuname, int Navigationselfid, int Navigationid, string NavigationName)
128
{
129![](/Images/OutliningIndicators/InBlock.gif)
130
DataTable Menudt = GetSelectAllNavigationMenus(Navigationselfid, Navigationid, NavigationName);
131
MenuItem lii;
132
for (int i = 0; i < Menudt.Rows.Count; i++)
133
{
134
lii = new MenuItem();
135
lii.Text = Menudt.Rows[i]["Name"].ToString();
136
// lii.NavigateUrl = Menudt.Rows[i]["URL"].ToString();
137
lii.Value = Menudt.Rows[i]["menuid"].ToString();
138
MenuItem items = new MenuItem();
139
items.ImageUrl = "~/images/move_right.gif";
140
items.Selectable = false; //设置一个值不能单机该项
141
menuname.Items.Add(items);
142
items.ChildItems.Remove(items);
143
menuname.Items.Add(lii);
144
lii.Selectable = false;
145
}
146
}
147![](/Images/OutliningIndicators/InBlock.gif)
148
/// <summary>
149
/// 导航菜单
150
/// </summary>
151
/// <param name="Navigationid"></param>
152
/// <param name="NavigationName"></param>
153
/// <returns></returns>
154![](/Images/OutliningIndicators/InBlock.gif)
155
public DataTable GetSelectAllNavigationMenus(int NavigationSelfid, int Navigationid, string NavigationName)
156
{
157
DataTable dt = new DataTable();
158
SqlHelper.FillDataTable(ConMenuSql.SELECT_MENU_NAVIGATION_MENUS, dt, new SqlParameter("@0", NavigationSelfid),
159
new SqlParameter("@1", Navigationid),
160
new SqlParameter("@2", NavigationName));
161
return dt;
162
}
163
}
164![](/Images/OutliningIndicators/None.gif)
165
5:直接在界面上拖一个Menu控件
166
然后在界面类里load事件里写如下代码:
167
protected void Page_Load(object sender, EventArgs e)
168
{
169
if (!this.IsPostBack)
170
{
171
int navigationid = Convert.ToInt32(Request["menuid"].ToString()); //传过来的页面ID也就是在数据库中出现的ID
172
string navigationname = Server.HtmlDecode(Request["MenuName"].ToString());///传过来的页面名字
173
selecthouseinfo.BuildNavigationMenu(Menu1,navigationid, navigationid, navigationname); ///调用SelectHouseInfo类中的BuildNavigationMenu这个方法进行传参数
174
}
175
}
176![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/None.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/None.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/None.gif)
55
![](/Images/OutliningIndicators/None.gif)
56
![](/Images/OutliningIndicators/None.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/None.gif)
59
![](/Images/OutliningIndicators/None.gif)
60
![](/Images/OutliningIndicators/None.gif)
61
![](/Images/OutliningIndicators/None.gif)
62
![](/Images/OutliningIndicators/None.gif)
63
![](/Images/OutliningIndicators/None.gif)
64
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
67
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/InBlock.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/InBlock.gif)
86
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
87
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
88
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
89
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
90
![](/Images/OutliningIndicators/None.gif)
91
![](/Images/OutliningIndicators/None.gif)
92
![](/Images/OutliningIndicators/None.gif)
93
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
96
![](/Images/OutliningIndicators/None.gif)
97
![](/Images/OutliningIndicators/None.gif)
98
![](/Images/OutliningIndicators/None.gif)
99
![](/Images/OutliningIndicators/None.gif)
100
![](/Images/OutliningIndicators/None.gif)
101
![](/Images/OutliningIndicators/None.gif)
102
![](/Images/OutliningIndicators/None.gif)
103
![](/Images/OutliningIndicators/None.gif)
104
![](/Images/OutliningIndicators/None.gif)
105
![](/Images/OutliningIndicators/None.gif)
106
![](/Images/OutliningIndicators/None.gif)
107
![](/Images/OutliningIndicators/None.gif)
108
![](/Images/OutliningIndicators/None.gif)
109
![](/Images/OutliningIndicators/None.gif)
110
![](/Images/OutliningIndicators/None.gif)
111
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
114
![](/Images/OutliningIndicators/None.gif)
115
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/InBlock.gif)
126
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
129
![](/Images/OutliningIndicators/InBlock.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/InBlock.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/InBlock.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/InBlock.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/InBlock.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
146
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
147
![](/Images/OutliningIndicators/InBlock.gif)
148
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
149
![](/Images/OutliningIndicators/InBlock.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/InBlock.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/InBlock.gif)
156
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
163
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
164
![](/Images/OutliningIndicators/None.gif)
165
![](/Images/OutliningIndicators/None.gif)
166
![](/Images/OutliningIndicators/None.gif)
167
![](/Images/OutliningIndicators/None.gif)
168
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
171
![](/Images/OutliningIndicators/InBlock.gif)
172
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
173
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
174
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
175
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
176
![](/Images/OutliningIndicators/None.gif)