![](https://i-blog.csdnimg.cn/blog_migrate/ea0c4ff34a9de5133d599e117880108e.jpeg)
步骤:
1.新建一个页面,假如说叫VerticalMenu
2.把html代码copy到html代码区
3.把LoadTopMenu方法copy到cs代码区
4.运行即可
-------------------------------------
1.html代码
<
STYLE
type
="text/css"
>
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
A:link {
}{ COLOR: #000000; FONT-SIZE: 12px; TEXT-DECORATION: none}
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
A:visited {
}{ COLOR: #000000; FONT-SIZE: 12px; TEXT-DECORATION: none}
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
A:hover {
}{ COLOR: #006CD9; FONT-SIZE: 12px; TEXT-DECORATION: none}
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
BODY {
}{ FONT-SIZE: 12px;}
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
TD {
}{ FONT-SIZE: 12px; line-height: 150%}
</
STYLE
>
![](https://i-blog.csdnimg.cn/blog_migrate/790fcecb321590905fab39f9d17b193b.gif)
<
script
language
="JavaScript"
>
<!--
function showitem(id,name)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
//打开弹出式页面
//return ("<span><a href='"+id+"' target=_blank>"+name+"</a></span><br>")
//在框架中打开
return ("<span><a href='#' οnclick=/"url('"+id+"');/">"+name+"</a></span><br>")
}
function url(id)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
var source = document.getElementById('fMain');
source.src=id;
}
function switchoutlookBar(number)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
var i = outlookbar.opentitle;
outlookbar.opentitle=number;
var id1,id2,id1b,id2b
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
if (number!=i && outlooksmoothstat==0)
{
if (number!=-1)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
if (i==-1)
{
id2="blankdiv";
id2b="blankdiv";
}
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
else
{
id2="outlookdiv"+i;
id2b="outlookdivin"+i;
document.all("outlooktitle"+i).style.border="1px none navy";
document.all("outlooktitle"+i).style.background=outlookbar.maincolor;
document.all("outlooktitle"+i).style.color="#ffffff";
document.all("outlooktitle"+i).style.textalign="center";
}
id1="outlookdiv"+number
id1b="outlookdivin"+number
document.all("outlooktitle"+number).style.border="1px none white";
document.all("outlooktitle"+number).style.background=outlookbar.maincolor; //title
document.all("outlooktitle"+number).style.color="#ffffff";
document.all("outlooktitle"+number).style.textalign="center";
smoothout(id1,id2,id1b,id2b,0);
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
document.all("blankdiv").style.display="";
document.all("blankdiv").sryle.height="100%";
document.all("outlookdiv"+i).style.display="none";
document.all("outlookdiv"+i).style.height="0%";
document.all("outlooktitle"+i).style.border="1px none navy";
document.all("outlooktitle"+i).style.background=outlookbar.maincolor;
document.all("outlooktitle"+i).style.color="#ffffff";
document.all("outlooktitle"+i).style.textalign="center";
}
}
}
function smoothout(id1,id2,id1b,id2b,stat)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
if(stat==0)
{
tempinnertext1=document.all(id1b).innerHTML;
tempinnertext2=document.all(id2b).innerHTML;
document.all(id1b).innerHTML="";
document.all(id2b).innerHTML="";
outlooksmoothstat=1;
document.all(id1b).style.overflow="hidden";
document.all(id2b).style.overflow="hidden";
document.all(id1).style.height="0%";
document.all(id1).style.display="";
setTimeout("smoothout('"+id1+"','"+id2+"','"+id1b+"','"+id2b+"',"+outlookbar.inc+")",outlookbar.timedalay);
}
else
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
stat+=outlookbar.inc;
if (stat>100)
stat=100;
document.all(id1).style.height=stat+"%";
document.all(id2).style.height=(100-stat)+"%";
if (stat<100)
setTimeout("smoothout('"+id1+"','"+id2+"','"+id1b+"','"+id2b+"',"+stat+")",outlookbar.timedalay);
else
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
document.all(id1b).innerHTML=tempinnertext1;
document.all(id2b).innerHTML=tempinnertext2;
outlooksmoothstat=0;
document.all(id1b).style.overflow="auto";
document.all(id2).style.display="none";
}
}
}
function getOutLine()
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
outline="<table "+outlookbar.otherclass+">";
for (i=0;i<(outlookbar.titlelist.length);i++)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
outline+="<tr><td name=outlooktitle"+i+" id=outlooktitle"+i+" ";
if (i!=outlookbar.opentitle)
outline+=" nowrap align=center style='cursor:hand;background-color:"+outlookbar.maincolor+";color:#ffffff;height:20;border:1 none navy' ";
else
outline+=" nowrap align=center style='cursor:hand;background-color:"+outlookbar.maincolor+";color:white;height:20;border:1 none white' ";
outline+=outlookbar.titlelist[i].otherclass
outline+=" οnclick='switchoutlookBar("+i+")'><span class=smallFont>";
outline+=outlookbar.titlelist[i].title+"</span></td></tr>";
outline+="<tr><td name=outlookdiv"+i+" valign=top align=center id=outlookdiv"+i+" style='width:100%"
if (i!=outlookbar.opentitle)
outline+=";display:none;height:0%;";
else
outline+=";display:;height:100%;";
outline+="'><div name=outlookdivin"+i+" id=outlookdivin"+i+" style='overflow:auto;width:100%;height:100%'>";
for (j=0;j<outlookbar.itemlist[i].length;j++)
outline+=showitem(outlookbar.itemlist[i][j].key,outlookbar.itemlist[i][j].title);
outline+="</div></td></tr>"
}
outline+="</table>"
return outline
}
function show()
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
var outline;
outline="<div id=outLookBarDiv name=outLookBarDiv style='width=100%;height:100%'>"
outline+=outlookbar.getOutLine();
outline+="</div>"
document.write(outline);
}
function theitem(intitle,instate,inkey)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
this.state=instate;
this.otherclass=" nowrap ";
this.key=inkey;
this.title=intitle;
}
function addtitle(intitle)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
outlookbar.itemlist[outlookbar.titlelist.length]=new Array();
outlookbar.titlelist[outlookbar.titlelist.length]=new theitem(intitle,1,0);
return(outlookbar.titlelist.length-1);
}
function additem(intitle,parentid,inkey)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
if (parentid>=0 && parentid<=outlookbar.titlelist.length)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
outlookbar.itemlist[parentid][outlookbar.itemlist[parentid].length]=new theitem(intitle,2,inkey);
outlookbar.itemlist[parentid][outlookbar.itemlist[parentid].length-1].otherclass=" nowrap align=left style='height:5' ";
return(outlookbar.itemlist[parentid].length-1);
}
else
additem=-1;
}
function outlook()
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
this.titlelist=new Array();
this.itemlist=new Array();
this.divstyle="style='height:100%;width:100%;overflow:auto' align=center";//可以在这里设置对齐方式
this.otherclass="border=0 cellspacing='0' cellpadding='0' style='height:100%;width:100%'valign=middle align=center ";
this.addtitle=addtitle;
this.additem=additem;
this.starttitle=-1;
this.show=show;
this.getOutLine=getOutLine;
this.opentitle=this.starttitle;
this.reflesh=outreflesh;
this.timedelay=50;
this.inc=10;
this.maincolor = "#336699"
}
function outreflesh()
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
document.all("outLookBarDiv").innerHTML=outlookbar.getOutLine();
}
function locatefold(foldname)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
{
if (foldname=="")
foldname = outlookbar.titlelist[0].title
for (var i=0;i<outlookbar.titlelist.length;i++)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
if(foldname==outlookbar.titlelist[i].title)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
outlookbar.starttitle=i;
outlookbar.opentitle=i;
}
}
}
var outlookbar=new outlook();
var tempinnertext1,tempinnertext2,outlooksmoothstat
outlooksmoothstat = 0;
![](https://i-blog.csdnimg.cn/blog_migrate/27b77279fa29dd757f55ab54b70b907a.gif)
<%=LoadVerticalMenu()%>//从数据库产生垂直菜单
![](https://i-blog.csdnimg.cn/blog_migrate/27b77279fa29dd757f55ab54b70b907a.gif)
//-->
</
script
>
<
table
id
="mnuList"
style
="WIDTH:150px;HEIGHT: 100%"
cellspacing
="0"
cellpadding
="0"
align
="left"
border
="0"
>
<
tr
>
<
td
bgcolor
="#F0F0E5"
id
="outLookBarShow"
style
="HEIGHT: 100%"
valign
="top"
align
="middle"
name
="outLookBarShow"
>
![](https://i-blog.csdnimg.cn/blog_migrate/790fcecb321590905fab39f9d17b193b.gif)
<
script
language
="JavaScript"
>
<!--
locatefold("")
outlookbar.show()
//-->
</
script
>
</
td
>
</
tr
>
</
table
>
2.cs代码
public
class
VerticalMenu : System.Web.UI.Page
![](https://i-blog.csdnimg.cn/blog_migrate/790fcecb321590905fab39f9d17b193b.gif)
{
protected DataRow[] father;
protected DataRow[] first;
private void Page_Load(object sender, System.EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
// 模拟QQ菜单
}
public static string ConnectionString=System.Configuration .ConfigurationSettings .AppSettings["ConnectionString"];
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
GetDataSet#region GetDataSet
public static DataSet GetDataSet(string sql)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
SqlDataAdapter sda =new SqlDataAdapter(sql,ConnectionString);
DataSet ds=new DataSet();
sda.Fill(ds);
return ds;
}
#endregion
protected string LoadVerticalMenu()
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
string sqlFather="select * from PowerSetting";
DataSet dsFather=GetDataSet(sqlFather);
father=dsFather.Tables[0].Select("IsBoot=0","IsBoot");
string menu="";
foreach(DataRow drfather in father)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
menu+="var t;";
menu+="t=outlookbar.addtitle('"+drfather["Description"]+"');";
first=dsFather.Tables[0].Select("ParentID='"+Convert.ToInt32(drfather["ParentID"])+"' and IsBoot=1","IsBoot");
foreach(DataRow drfirst in first)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
menu+="outlookbar.additem('"+drfirst["Description"]+"',t,'"+drfirst["Url"]+"');";
}
}
return menu;
}
![](https://i-blog.csdnimg.cn/blog_migrate/70f6a658c73bd2f4a825c90eb4d9f5b4.gif)
Web Form Designer generated code#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
/**//**//**//// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
![](https://i-blog.csdnimg.cn/blog_migrate/52027445fc0a19b9c039aed50f2fe9b5.gif)
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
3.数据库脚本
if
exists
(
select
*
from
dbo.sysobjects
where
id
=
object_id
(N
'
[dbo].[PowerSetting]
'
)
and
OBJECTPROPERTY
(id, N
'
IsUserTable
'
)
=
1
)
drop
table
[
dbo
]
.
[
PowerSetting
]
GO
![](https://i-blog.csdnimg.cn/blog_migrate/cee29d823755a7f0635450c80fa6ad56.gif)
CREATE
TABLE
[
dbo
]
.
[
PowerSetting
]
(
[
PowerSettingID
]
[
int
]
IDENTITY
(
1
,
1
)
NOT
NULL
,
--
id
[
ParentID
]
[
int
]
NOT
NULL
,
--
父节点id
[
Description
]
[
nvarchar
]
(
255
) COLLATE Chinese_PRC_CI_AS
NULL
,
--
菜单描述内容
[
Icon
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
--
要显示图标
[
Url
]
[
nvarchar
]
(
255
) COLLATE Chinese_PRC_CI_AS
NULL
,
--
url
[
Target
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
--
_self,_blank等
[
CreateByID
]
[
nvarchar
]
(
50
) COLLATE Chinese_PRC_CI_AS
NULL
,
--
创建人id
[
CreateON
]
[
datetime
]
NULL
,
--
创建日期
[
IsEnabled
]
[
bit
]
NULL
,
--
是否可用
[
IsBoot
]
[
int
]
NULL
--
是不是根节点;1是其他不是
)
ON
[
PRIMARY
]
GO
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=711422