菜单
相信大家做网页的时候都会用到菜单。最近在CSDN上答题的时候,问动态菜单的还是比较多。这次就整3个动态菜单给同学们玩玩。方便刚入门的小鸟速度掌握。
正所谓天下文章大家抄,抄来抄去有提高.去百度一个JS+CSS菜单。 CSS菜单
效果还算一般。我们把它抄袭下来 以后留用.
先来看看HTML
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv ="Content-Type" content ="text/html; charset=gb2312" />
< title > 导航菜单 </ title >
< style >
body,td,th {
font-family : Tahoma, Verdana, Arial, sans-serif ;
font-size : 12px ;
color : #333333 ;
}
body {
margin-left : 0px ;
margin-top : 0px ;
margin-right : 0px ;
margin-bottom : 0px ;
}
a {
color : #333333 ;
text-decoration : none ;
}
a:hover {
color : #FF0000 ;
text-decoration : none ;
}
a:active {
color : #FF0000 ;
text-decoration : none ;
}
#menu {
height : 32px ;
margin-top : 8px ; background-color : #990000 ;
}
#menu ul {
margin : auto ; width : 778px ; height : 32px ;
list-style-type : none ; padding : 0px ; margin-top : 0px ; margin-bottom : 0px ;
}
.m_li {
float : left ; width : 114px ; line-height : 32px ; text-align : center ; margin-right : -2px ; margin-left : -2px ;
}
.m_li a {
display : block ; color : #FFFFFF ; width : 114px ;
}
.m_line {
float : left ; width : 1px ; height : 32px ;
line-height : 32px ; /* ff下有效(图片垂直居中) */
}
.m_line img {
margin-top : expression(( 32 - this.height ) / 2) ; /* ie下有效(图片垂直居中) */
}
.m_li_a {
float : left ; width : 114px ; line-height : 32px ; text-align : center ; padding-top : 3px ; font-weight : bold ;
background-image : url(/jscss/demoimg/200904/menu_bg2.jpg) ; position : relative ; height : 32px ; margin-top : -3px ; margin-right : -2px ; margin-left : -2px ;
}
.m_li_a a {
display : block ; color : #FF0000 ; width : 114px ;
}
.smenu {
width : 774px ; margin : 0px auto 0px auto ; padding : 0px ; list-style-type : none ; height : 32px ;
}
.s_li {
line-height : 32px ; width : auto ; display : none ; height : 32px ;
}
.s_li_a {
line-height : 32px ; width : auto ; display : block ; height : 32px ;
}
</ style >
< script >
// 初始化
var def = " 1 " ;
function mover(object){
// 主菜单
var mm = document.getElementById( " m_ " + object);
mm.className = " m_li_a " ;
// 初始主菜单隐藏效果
if (def != 0 ){
var mdef = document.getElementById( " m_ " + def);
mdef.className = " m_li " ;
}
// 子菜单
var ss = document.getElementById( " s_ " + object);
ss.style.display = " block " ;
// 初始子菜单隐藏效果
if (def != 0 ){
var sdef = document.getElementById( " s_ " + def);
sdef.style.display = " none " ;
}
}
function mout(object){
// 主菜单
var mm = document.getElementById( " m_ " + object);
mm.className = " m_li " ;
// 初始主菜单
if (def != 0 ){
var mdef = document.getElementById( " m_ " + def);
mdef.className = " m_li_a " ;
}
// 子菜单
var ss = document.getElementById( " s_ " + object);
ss.style.display = " none " ;
// 初始子菜单
if (def != 0 ){
var sdef = document.getElementById( " s_ " + def);
sdef.style.display = " block " ;
}
}
</ script >
</ head >
< body >
< div id ="menu" >
< ul >
< li class ="m_line" >< img src ="/jscss/demoimg/200904/line2.gif" /></ li >
< li id ="m_1" class ='m_li_a' >< a href ="#" > 财税首页 </ a ></ li >
< li class ="m_line" >< img src ="/jscss/demoimg/200904/line2.gif" /></ li >
< li id ="m_2" class ='m_li' onmouseover ='mover(2);' onmouseout ='mout(2);' >< a href ="#" > 政务公开 </ a ></ li >
< li class ="m_line" >< img src ="/jscss/demoimg/200904/line2.gif" /></ li >
< li id ="m_3" class ='m_li' onmouseover ='mover(3);' onmouseout ='mout(3);' >< a href ="#" > 网上办事 </ a ></ li >
< li class ="m_line" >< img src ="/jscss/demoimg/200904/line2.gif" /></ li >
< li id ="m_4" class ='m_li' onmouseover ='mover(4);' onmouseout ='mout(4);' >< a href ="#" > 公告中心 </ a ></ li >
< li class ="m_line" >< img src ="/jscss/demoimg/200904/line2.gif" /></ li >
< li id ="m_5" class ='m_li' onmouseover ='mover(5);' onmouseout ='mout(5);' >< a href ="#" > 法规中心 </ a ></ li >
< li class ="m_line" >< img src ="/jscss/demoimg/200904/line2.gif" /></ li >
< li id ="m_6" class ='m_li' onmouseover ='mover(6);' onmouseout ='mout(6);' >< a href ="#" > 财税文化 </ a ></ li >
< li class ="m_line" >< img src ="/jscss/demoimg/200904/line2.gif" /></ li >
< li id ="m_7" class ='m_li' onmouseover ='mover(7);' onmouseout ='mout(7);' >< a href ="#" > 专题宣传 </ a ></ li >
< li class ="m_line" >< img src ="/jscss/demoimg/200904/line2.gif" /></ li >
</ ul >
</ div >
< div style ="height:32px; background-color:#F1F1F1;" >
< ul class ="smenu" >
< li style ="padding-left:29px;" id ="s_1" class ='s_li_a' > 您是本站第13122842位访客! </ li >
< li style ="padding-left:141px;" id ="s_2" class ='s_li' onmouseover ='mover(2);' onmouseout ='mout(2);' >< a href ="/" > 财税简介 </ a > | < a href ="#" > 机构设置 </ a > | < a href ="/" > 办事指南 </ a > | < a href ="/" > 税种简介 </ a > | < a href ="/" > 财税动态 </ a > | < a href ="/" > 网页特效 </ a ></ li >
< li style ="padding-left:252px;" id ="s_3" class ='s_li' onmouseover ='mover(3);' onmouseout ='mout(3);' >< a href ="/" > 下载专区 </ a > | < a href ="/" > 上传专区 </ a > | < a href ="#" > 申请报名 </ a > | < a href ="#" > 查询系统 </ a > | < a href ="#" > 咨询投诉 </ a > | < a href ="/" > 满意调查 </ a ></ li >
< li style ="padding-left:362px;" id ="s_4" class ='s_li' onmouseover ='mover(4);' onmouseout ='mout(4);' >< a href ="/" > 最新公告 </ a > | < a href ="/" > 会计通知 </ a ></ li >
< li style ="padding-left:474px;" id ="s_5" class ='s_li' onmouseover ='mover(5);' onmouseout ='mout(5);' >< a href ="/" > 最新政策 </ a > | < a href ="#" > 政策法规查询 </ a ></ li >
< li style ="padding-left:447px;" id ="s_6" class ='s_li' onmouseover ='mover(6);' onmouseout ='mout(6);' >< a href ="/" > 税收宣传 </ a > | < a href ="/" > 最新更新 </ a > | < a href ="#" > 文明创建 </ a > | < a href ="#" target ="_blank" > 青年论坛 </ a > | < a href ="#" > 廉政课堂 </ a ></ li >
< li style ="padding-left:696px;" id ="s_7" class ='s_li' onmouseover ='mover(7);' onmouseout ='mout(7);' >< a href ="/" > 专题宣传区 </ a ></ li >
</ ul >
</ div >
</ body >
</ html >
其中有定义的JS和CSS 不会不要紧。因为我们可以抄. OK开工。新建一个页面.讲这些代码复制进去 不解释.
仔细观察一下。 DIV的ID为MENU的貌似是父菜单。而下面那个DIV是加载上去的。那我们就从后台返回两个字符串用于页面绑定。一个也可以搞定。
创建数据库
1 USE [ CSDN_Ziye ]
2 GO
3 /* ***** 对象: Table [dbo].[Ziye_Menu] 脚本日期: 04/24/2011 20:13:53 ***** */
4 SET ANSI_NULLS ON
5 GO
6 SET QUOTED_IDENTIFIER ON
7 GO
8 CREATE TABLE [ dbo ] . [ Ziye_Menu ] (
9 [ Menu_ID ] [ int ] NULL ,
10 [ Menu_Fid ] [ int ] NULL ,
11 [ Menu_Name ] [ nvarchar ] ( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
12 [ Menu_Url ] [ nvarchar ] ( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
13 [ Menu_able ] [ int ] NULL ,
14 [ Menu_Rel ] [ nvarchar ] ( 50 ) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
15 [ Menu_Type ] [ int ] NULL
16 ) ON [ PRIMARY ]
其中有几个字段不需要。具体是干嘛的。下一篇会用到。。
采用拼接字符串。就像我经常CSDN解答的那样。
前台<%=str %>
后台public static string str=string.Empty;
建立个页面开整
1 <% @ Page Language = " C# " AutoEventWireup = " true " CodeBehind = " Default.aspx.cs " Inherits = " Ziye_Menu1._Default " %>
2
3 <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
4 < html xmlns ="http://www.w3.org/1999/xhtml" >
5 < head runat ="server" >
6 < meta http-equiv ="Content-Type" content ="text/html; charset=utf-8" />
7 < title > 子夜菜单(一) </ title >
8 < meta http-equiv ="Content-Type" content ="text/html; charset=gb2312" />
9 < style >
10 body, td, th
11 {
12 font-family : Tahoma, Verdana, Arial, sans-serif ;
13 font-size : 12px ;
14 color : #333333 ;
15 }
16 body
17 {
18 margin-left : 0px ;
19 margin-top : 0px ;
20 margin-right : 0px ;
21 margin-bottom : 0px ;
22 }
23 a
24 {
25 color : #333333 ;
26 text-decoration : none ;
27 }
28 a:hover
29 {
30 color : #FF0000 ;
31 text-decoration : none ;
32 }
33 a:active
34 {
35 color : #FF0000 ;
36 text-decoration : none ;
37 }
38 #menu
39 {
40 height : 32px ;
41 margin-top : 8px ;
42 background-color : #990000 ;
43 }
44 #menu ul
45 {
46 margin : auto ;
47 width : 778px ;
48 height : 32px ;
49 list-style-type : none ;
50 padding : 0px ;
51 margin-top : 0px ;
52 margin-bottom : 0px ;
53 }
54 .m_li
55 {
56 float : left ;
57 width : 114px ;
58 line-height : 32px ;
59 text-align : center ;
60 margin-right : -2px ;
61 margin-left : -2px ;
62 }
63 .m_li a
64 {
65 display : block ;
66 color : #FFFFFF ;
67 width : 114px ;
68 }
69 .m_line
70 {
71 float : left ;
72 width : 1px ;
73 height : 32px ;
74 line-height : 32px ; /* ff下有效(图片垂直居中) */
75 }
76 .m_line img
77 {
78 margin-top : expression(( 32 - this.height ) / 2) ; /* ie下有效(图片垂直居中) */
79 }
80 .m_li_a
81 {
82 float : left ;
83 width : 114px ;
84 line-height : 32px ;
85 text-align : center ;
86 padding-top : 3px ;
87 font-weight : bold ;
88 background-image : url(http://www.codefans.net/jscss/demoimg/200904/menu_bg2.jpg) ;
89 position : relative ;
90 height : 32px ;
91 margin-top : -3px ;
92 margin-right : -2px ;
93 margin-left : -2px ;
94 }
95 .m_li_a a
96 {
97 display : block ;
98 color : #FF0000 ;
99 width : 114px ;
100 }
101 .smenu
102 {
103 width : 774px ;
104 margin : 0px auto 0px auto ;
105 padding : 0px ;
106 list-style-type : none ;
107 height : 32px ;
108 }
109 .s_li
110 {
111 line-height : 32px ;
112 width : auto ;
113 display : none ;
114 height : 32px ;
115 }
116 .s_li_a
117 {
118 line-height : 32px ;
119 width : auto ;
120 display : block ;
121 height : 32px ;
122 }
123 </ style >
124
125 < script >
126 // 初始化
127 var def = " 1 " ;
128 function mover(object) {
129 // 主菜单
130 var mm = document.getElementById( " m_ " + object);
131 mm.className = " m_li_a " ;
132 // 初始主菜单隐藏效果
133 if (def != 0 ) {
134 var mdef = document.getElementById( " m_ " + def);
135 mdef.className = " m_li " ;
136 }
137 // 子菜单
138 var ss = document.getElementById( " s_ " + object);
139 ss.style.display = " block " ;
140 // 初始子菜单隐藏效果
141 if (def != 0 ) {
142 var sdef = document.getElementById( " s_ " + def);
143 sdef.style.display = " none " ;
144 }
145 }
146
147 function mout(object) {
148 // 主菜单
149 var mm = document.getElementById( " m_ " + object);
150 mm.className = " m_li " ;
151 // 初始主菜单
152 if (def != 0 ) {
153 var mdef = document.getElementById( " m_ " + def);
154 mdef.className = " m_li_a " ;
155 }
156 // 子菜单
157 var ss = document.getElementById( " s_ " + object);
158 ss.style.display = " none " ;
159 // 初始子菜单
160 if (def != 0 ) {
161 var sdef = document.getElementById( " s_ " + def);
162 sdef.style.display = " block " ;
163 }
164 }
165 </ script >
166
167 </ head >
168 < body >
169 <% = GetMenu() %>
170 </ body >
171 </ html >
接下来是后台代码看注释.
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Web.UI;
6 using System.Web.UI.WebControls;
7 using System.Text;
8 using System.Data;
9
10 namespace Ziye_Menu1
11 {
12 public partial class _Default : System.Web.UI.Page
13 {
14 protected void Page_Load( object sender, EventArgs e)
15 {
16
17 }
18
19 public string GetMenu()
20 {
21 // <div id="menu">
22 // <ul>
23 // <li class="m_line"><img src="/jscss/demoimg/200904/line2.gif" /></li>
24 // <li id="m_1" class='m_li_a'><a href="#">财税首页</a></li>
25 // <li class="m_line"><img src=" http://www.codefans.net/jscss/demoimg/200904/line2.gif " /></li>
26 // <li id="m_2" class='m_li' onmouseover='mover(2);' onmouseout='mout(2);'><a href="#">政务公开</a></li>
27 // <li class="m_line"><img src=" http://www.codefans.net/jscss/demoimg/200904/line2.gif " /></li>
28 // <li id="m_3" class='m_li' onmouseover='mover(3);' onmouseout='mout(3);'><a href="#">网上办事</a></li>
29 // <li class="m_line"><img src=" http://www.codefans.net/jscss/demoimg/200904/line2.gif " /></li>
30 // <li id="m_4" class='m_li' onmouseover='mover(4);' onmouseout='mout(4);'><a href="#">公告中心</a></li>
31 // <li class="m_line"><img src=" http://www.codefans.net/jscss/demoimg/200904/line2.gif " /></li>
32 // <li id="m_5" class='m_li' onmouseover='mover(5);' onmouseout='mout(5);'><a href="#">法规中心</a></li>
33 // <li class="m_line"><img src=" http://www.codefans.net/jscss/demoimg/200904/line2.gif " /></li>
34 // <li id="m_6" class='m_li' onmouseover='mover(6);' onmouseout='mout(6);'><a href="#">财税文化</a></li>
35 // <li class="m_line"><img src=" http://www.codefans.net/jscss/demoimg/200904/line2.gif " /></li>
36 // <li id="m_7" class='m_li' onmouseover='mover(7);' onmouseout='mout(7);'><a href="#">专题宣传</a></li>
37 // <li class="m_line"><img src=" http://www.codefans.net/jscss/demoimg/200904/line2.gif " /></li>
38 // </ul>
39 // </div>
40
41
42 /*
43 * 这些就是用于主菜单的 我们要把“政务公开”这些换成数据库的名字,<a href="#">中的#也要换成我们数据库的链接
44 *
45 * 发现<img src="jscss/demoimg/200904/line2.gif" />在本机找不到图片 所以在前面加上http://www.codefans.net/就当引用他网站中的图片了
46 *
47 * 开抄.
48 */
49
50 StringBuilder LeftList = new StringBuilder(); // 声明一个LeftList 用于后面拼接
51 try
52 {
53 LeftList.Append( " <div id=\"menu\"> " );
54 LeftList.Append( " <ul> " );
55 // 取出所有数据 (这里用的是我大一时候写的SqlHelper请大家不要笑话.)
56 DataTable Dt_TotleMenu = SqlHelper.ReturnDataTable( " select * from Ziye_Menu " , CommandType.Text);
57 DataRow[] drMenu = Dt_TotleMenu.Select( " Menu_Fid=0 and Menu_able=1 " ); // 取出所有启用的父节点
58 DataTable LeftMenuTable = new DataTable(); // 构建父节点的table
59 LeftMenuTable = drMenu[ 0 ].Table.Clone();
60 foreach (DataRow dr in drMenu)
61 {
62 LeftMenuTable.ImportRow(dr);
63 }
64
65 if (LeftMenuTable.Rows.Count != 0 )
66 {
67 for ( int i = 0 ; i < LeftMenuTable.Rows.Count; i ++ )
68 {
69 /*
70 *观察菜单可以看出 一个节点可以包含
71 *<li class="m_line"><img src="/jscss/demoimg/200904/line2.gif" /></li>-------图片
72 *<li id="m_1" class='m_li_a'><a href="#">财税首页</a></li>--------链接和名字
73 * 这两个那么最后应该少一个
74 * <li class="m_line"><img src=" http://www.codefans.net/jscss/demoimg/200904/line2.gif " /></li>---图片
75 */
76 LeftList.Append( " <li class=\"m_line\"><img src=\"http://www.codefans.net/jscss/demoimg/200904/line2.gif\" /></li> " ); // 添加图片
77 if (i != 0 )
78 {
79 LeftList.Append( " <li id=\"m_ " + (i + 1 ) + " \" class='m_li' onmouseover='mover( " + (i + 1 ) + " );' onmouseout='mout( " + (i + 1 ) + " );'><a href= " + LeftMenuTable.Rows[i][ " Menu_Url " ].ToString() + " > " + LeftMenuTable.Rows[i][ " Menu_Name " ].ToString() + " </a></li> " );
80 }
81 else
82 {
83 LeftList.Append( " <li id=\"m_1\" class='m_li_a'><a href=\"#\">首页</a></li> " );
84 }
85 // 到此循环全部搞定。然后我们不要忘记缺了最后一行
86 }
87 LeftList.Append( " <li class=\"m_line\"><img src=\"http://www.codefans.net/jscss/demoimg/200904/line2.gif\" /></li> " );
88 LeftList.Append( " </ul> " );
89 LeftList.Append( " </div> " );
90 // 上面的HTML 全部拼接完成
91 }
92
93 /*
94 * 到这里我们父级菜单就算绑定完了。接下来看子菜单
95 * <div s6tyle="height:32px; background-color:#F1F1F1;">
96
97 * <ul class="smenu">
98
99 * <li id="s_1" class='s_li_a'>大家好我是子夜</li>
100
101 * <li id="s_2" class='s_li' onmouseover='mover(2);' onmouseout='mout(2);'><a href="/">财税简介</a> | <a href="#">机构设置</a> | <a href="/">办事指南</a> | <a href="/">税种简介</a> | <a href="/">财税动态</a> | <a href="/">网页特效</a></li>
102
103 * <li id="s_3" class='s_li' onmouseover='mover(3);' onmouseout='mout(3);'><a href="/">下载专区</a> | <a href="/">上传专区</a> | <a href="#">申请报名</a> | <a href="#">查询系统</a> | <a href="#">咨询投诉</a> | <a href="/">满意调查</a></li>
104
105 * <li id="s_4" class='s_li' onmouseover='mover(4);' onmouseout='mout(4);'><a href="/">最新公告</a> | <a href="/">会计通知</a></li>
106
107 * <li id="s_5" class='s_li' onmouseover='mover(5);' onmouseout='mout(5);'><a href="/">最新政策</a> | <a href="#">政策法规查询</a></li>
108
109 * <li id="s_6" class='s_li' onmouseover='mover(6);' onmouseout='mout(6);'><a href="/">税收宣传</a> | <a href="/">最新更新</a> | <a href="#">文明创建</a> | <a href="#" target="_blank">青年论坛</a> | <a href="#">廉政课堂</a></li>
110
111 * <li id="s_7" class='s_li' onmouseover='mover(7);' onmouseout='mout(7);'><a href="/">专题宣传区</a></li>
112
113 * </ul>
114
115 *</div>
116 *
117 * 前面那些不看 (<li style="padding-left:141px;" id="s_2" class='s_li' onmouseover='mover(2);' onmouseout='mout(2);'>)
118 *
119 * 就看这个链接
120 *
121 * <a href="/">财税简介</a> | <a href="#">机构设置</a> | <a href="/">办事指南</a> | <a href="/">税种简介</a> | <a href="/">财税动态</a> | <a href="/">网页特效</a></li>
122 *
123 * 这些链接是属于一个父节点下的所有子节点拼接的。我们依照上面一样的改。
124 */
125
126
127
128 // 先拼接子菜单的前两行
129 LeftList.Append( " <div s6tyle=\"height:32px; background-color:#F1F1F1;\"> " );
130 LeftList.Append( " <ul class=\"smenu\"> " );
131
132
133 // 遍历每一个父节点 取它下所有的子节点。然后拼子节点的HTML
134 for ( int j = 0 ; j < LeftMenuTable.Rows.Count; j ++ )
135 {
136
137 /* 因为<li id="s_2" class='s_li' onmouseover='mover(2);' onmouseout='mout(2);'><a href="/">财税简介</a> | <a href="#">机构设置</a> | <a href="/">办事指南</a> | <a href="/">税种简介</a> | <a href="/">财税动态</a> | <a href="/">网页特效</a></li>
138 *
139 * 所以每次遍历的时候我们先把<li id="s_2" class='s_li' onmouseover='mover(2);' onmouseout='mout(2);'>添加上
140 *
141 * 然后在遍历拼接子节点 <a href="/">财税简介</a> | <a href="#">机构设置</a> | <a href="/">办事指南</a> | <a href="/">税种简介</a> | <a href="/">财税动态</a> | <a href="/">网页特效</a>
142 *
143 * 最后加上</li> 即可
144 *
145 */
146
147 // 寻找父ID为当前父ID的子节点
148 DataRow[] drSencondMenu = Dt_TotleMenu.Select( " Menu_Fid=' " + LeftMenuTable.Rows[j][ " Menu_ID " ] + " ' and Menu_able=1 " );
149 DataTable SecondTable = new DataTable();
150 SecondTable = drSencondMenu[ 0 ].Table.Clone();
151 foreach (DataRow dr in drSencondMenu)
152 {
153 SecondTable.ImportRow(dr);
154 }
155
156
157 if (SecondTable.Rows.Count != 0 ) // 证明此父节点存在子节点
158 {
159 if (j == 0 )
160 {
161 LeftList.Append( " <li id=\"s_1\" class='s_li_a'>大家好我是子夜</li> " );
162 }
163 else
164 {
165 LeftList.Append( " <li id=\"s_ " + (j + 1 ) + " \" class='s_li' onmouseover='mover( " + (j + 1 ) + " );' onmouseout='mout( " + (j + 1 ) + " );'> " );
166 // 遍历拼接子节点的HTML
167 for ( int k = 0 ; k < SecondTable.Rows.Count; k ++ )
168 {
169
170 LeftList.Append( " <a href= " + SecondTable.Rows[k][ " Menu_Url " ].ToString() + " > " + SecondTable.Rows[k][ " Menu_Name " ].ToString() + " </a> " );
171
172 if (k != SecondTable.Rows.Count - 1 ) // 如果是最后一项就不加 | 了.^_^
173 {
174 LeftList.Append( " | " );
175 }
176 }
177 }
178 LeftList.Append( " </li> " );
179
180 }
181 }
182 LeftList.Append( " </ul> " );
183 LeftList.Append( " </div> " );
184 return LeftList.ToString();
185
186 }
187 catch (Exception err)
188 {
189 return " 没菜单 " ;
190 }
191 }
192 }
193 }
效果 :
193行代码 其实我们可以优化的。
比如在一个FOR循环中拼接父节点和子节点的HTML。
也可以写一个递归的方法来用。这里用简单的DataTable.来拼接的html.其实代码不是最重要的。重要的是一种思想。
有兴趣的小鸟们可以练习练习。也可以去网上抄袭几个留着以后用.
下篇 来个实战。练练抄袭的功力.
http://www.cnblogs.com/Gavinzhao/archive/2011/05/08/2026542.html
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息