wfcfan
随笔 - 8, 文章 - 1, 评论 - 2, 引用 - 2
数据加载中……
Menu(XMl递归)
最终效果:
代码:
1
<?
xml version="1.0" encoding="utf-8"
?>
2
<
CataLog
>
3
<
Links
id
="1"
Text
="产品库1"
roles
="123"
>
4
<
Link
id
="2"
Text
="产品库11"
roles
="123"
></
Link
>
5
<
Link
id
="3"
Text
="产品库12"
roles
="113"
></
Link
>
6
<
Links
id
="11"
Text
="产品库1"
roles
="123"
>
7
<
Link
id
="24"
Text
="产品库www"
roles
="1213"
></
Link
>
8
<
Link
id
="34"
Text
="产品库333"
roles
="113"
></
Link
>
9
<
Links
id
="17"
Text
="产品库dd1"
roles
="123"
>
10
<
Link
id
="244"
Text
="产品库sds"
roles
="123"
></
Link
>
11
<
Link
id
="344"
Text
="产品库433"
roles
="113"
></
Link
>
12
</
Links
>
13
</
Links
>
14
</
Links
>
15
<
Links
id
="9"
Text
="产品库2"
roles
="123"
>
16
<
Link
id
="5"
Text
="产品库21"
roles
="123"
></
Link
>
17
<
Link
id
="6"
Text
="产品库22"
roles
="123"
></
Link
>
18
</
Links
>
19
<
Link
id
="8"
Text
="产品库3"
roles
="123"
></
Link
>
20
</
CataLog
>
1
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
2
3
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
4
<
head
runat
="server"
>
5
<
title
>
无标题页
</
title
>
6
</
head
>
7
<
body
>
8
<
form
id
="form1"
runat
="server"
>
9
<
asp:Menu
runat
="server"
ID
="Menu1"
BackColor
="#FFFBD6"
DynamicHorizontalOffset
="2"
Font-Names
="Verdana"
Font-Size
="0.8em"
ForeColor
="#990000"
StaticSubMenuIndent
="10px"
>
10
<
Items
>
11
12
</
Items
>
13
<
StaticMenuItemStyle
HorizontalPadding
="5px"
VerticalPadding
="2px"
/>
14
<
DynamicHoverStyle
BackColor
="#990000"
ForeColor
="White"
/>
15
<
DynamicMenuStyle
BackColor
="#FFFBD6"
/>
16
<
StaticSelectedStyle
BackColor
="#FFCC66"
/>
17
<
DynamicSelectedStyle
BackColor
="#FFCC66"
/>
18
<
DynamicMenuItemStyle
HorizontalPadding
="5px"
VerticalPadding
="2px"
/>
19
<
StaticHoverStyle
BackColor
="#990000"
ForeColor
="White"
/>
20
</
asp:Menu
>
21
</
form
>
22
</
body
>
23
</
html
>
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(
!
IsPostBack)
{
loadMenu();
}
}
private
void
loadMenu()
{
XmlDocument dom
=
new
XmlDocument();
dom.Load(MenuPath.XmlPath);
XmlElement root
=
dom.DocumentElement;
if
(root.ChildNodes.Count
==
0
)
throw
new
Exception(
"
Data Source is null
"
);
XmlNodeList nodelist
=
root.ChildNodes;
initMenu(nodelist);
}
public
void
initMenu(XmlNodeList nodeList)
{
MenuItem item
=
null
;
for
(
int
i
=
0
; i
<
nodeList.Count; i
++
)
{
if
(
!
isInRole(nodeList[i].Attributes[
"
roles
"
].Value))
continue
;
item
=
new
MenuItem();
item.Text
=
nodeList[i].Attributes[
"
Text
"
].Value;
item.Value
=
nodeList[i].Attributes[
"
id
"
].Value;
if
(nodeList[i].Name
==
"
Links
"
)
GetChildNodeData(nodeList[i], item);
Menu1.Items.Add(item);
}
}
bool
isInRole(
string
rolesid)
{
bool
b
=
false
;
string
[] rd
=
rolesid.Trim().Trim(
'
,
'
).Split(
'
,
'
);
foreach
(
string
s
in
rd)
{
if
(s
==
"
123
"
)
{
b
=
true
;
break
;
}
}
return
b;
}
private
void
GetChildNodeData(XmlNode node,MenuItem pItem)
{
MenuItem item
=
null
;
foreach
(XmlNode n
in
node.ChildNodes)
{
if
(
!
isInRole(n.Attributes[
"
roles
"
].Value))
continue
;
item
=
new
MenuItem();
item.Text
=
n.Attributes[
"
Text
"
].Value;
item.Value
=
n.Attributes[
"
id
"
].Value;
pItem.ChildItems.Add(item);
if
(n.Name
==
"
Links
"
)
GetChildNodeData(n, item);
}
}
posted on 2008-06-27 17:38
RedFox(低调)
阅读(511)
评论(1)
编辑
收藏
评论
#1楼
回复
引用
查看
XML可以直接绑定到Menu控件上的。不用写代码。
2008-06-27 17:45 |
Ants
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
网站首页
新闻频道
社区
小组
博问
网摘
闪存
找找看
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
发布MSPlus ToolBar&Menu WebControl V1.1.0910 版本
MSPlus ToolBar&Menu WebControls DownLoad
Menu控件静态选择项样式的设置
[ASP:Menu控件] 上菜单太长,怎么实现左右滚动?
相关链接:
最新IT新闻:
开心网即将启用”shejiao.com”?
Google股价跌破329美元 61%员工期权价值归零
十年祭:昔日明星软件今何在?
六大可能出售IT企业名单:SUN领头或被猎走
Linux内核2.6.27正式到来
Powered by:
博客园
Copyright © RedFox(低调)
导航
博客园
首页
新随笔
联系
订阅
管理
<
2008年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
我的标签
editplus
(1)
editplus注册机
(1)
随笔档案
2008年7月 (2)
2008年6月 (5)
2008年1月 (1)
相册
IT
最新评论
1. re: EditPlus3.0
User:wfcfan Serial:5FA89-94818-BEZA1-46W1C-8DTD9 User:wfcfan Serial:40A89-94818-50ZDF-BBW35-91T95 ...
--wfcfan
阅读排行榜
1. Menu(XMl递归)(511)
2. TreeView(递归)(281)
3. JS常用函数(87)
4. EditPlus3.0(68)
5. Ubuntu学习(40)
评论排行榜
1. EditPlus3.0(1)
2. Menu(XMl递归)(1)
3. TreeView(递归)(0)
4. JS常用函数(0)
5. 泛型(0)