我有一个oa程序,这是一段生成菜单的代码,整个代码如下,效果如下网址
http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg 请教几个问题:
1. 下面的代码整个来说说什么意思啊?其中Tables[0]是什么意思啊?Rows[i][7]又是什么意思啊?
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
2. 下面的代码整个来说说什么意思啊?
如下
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
13 个解决方案
#1
Rows[i][7] : i = Row Index;7 = Column Index
#2
自己好好的去学学ado.net
#3
谢谢各位,看来我要加强自己的学习了,可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的啊?能不能解释一下?我有点看不明白啊!
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
#4
不一定非得用这样的方法啊
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//连接数据库
string strConn="server=Localhost;uid=sa;pwd=;database=eFrum";
// 创建Connection对象cnMain
SqlConnection cnMain=new SqlConnection(strConn);
// 打开cnMain
cnMain.Open();
// 构造SQL语句,该语句选择所有的主版
String strMain="select * from MainBoards";
// 创建Command对象cmMain
SqlCommand cmMain=new SqlCommand(strMain,cnMain);
// 执行ExecuteReader()方法得到drMain
SqlDataReader drMain=cmMain.ExecuteReader();
// 显示主版
while(drMain.Read())
{Response.Write(Convert.ToString(drMain["MainName"]));
// 创建Connection对象cnSub
SqlConnection cnSub=new SqlConnection(strConn);
// 打开cnSub
cnSub.Open();
// 构造SQL语句,该语句选择主版的所有子版
String strSub="select * from SubBoards where "+
"MainID='"+drMain["MainID"]+"'";
// 创建Command对象cmSub
SqlCommand cmSub=new SqlCommand(strSub,cnSub);
// 执行ExecuteReader()方法得到drSub
SqlDataReader drSub=cmSub.ExecuteReader();
// 显示子版
while(drSub.Read())
{Response.Write("<a href='display1.aspx?subid="+drSub["SubID"]+"' target=_blank>"+drSub["SubName"]+"</a><br>");
}
就是用两个while嵌套输出即可
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//连接数据库
string strConn="server=Localhost;uid=sa;pwd=;database=eFrum";
// 创建Connection对象cnMain
SqlConnection cnMain=new SqlConnection(strConn);
// 打开cnMain
cnMain.Open();
// 构造SQL语句,该语句选择所有的主版
String strMain="select * from MainBoards";
// 创建Command对象cmMain
SqlCommand cmMain=new SqlCommand(strMain,cnMain);
// 执行ExecuteReader()方法得到drMain
SqlDataReader drMain=cmMain.ExecuteReader();
// 显示主版
while(drMain.Read())
{Response.Write(Convert.ToString(drMain["MainName"]));
// 创建Connection对象cnSub
SqlConnection cnSub=new SqlConnection(strConn);
// 打开cnSub
cnSub.Open();
// 构造SQL语句,该语句选择主版的所有子版
String strSub="select * from SubBoards where "+
"MainID='"+drMain["MainID"]+"'";
// 创建Command对象cmSub
SqlCommand cmSub=new SqlCommand(strSub,cnSub);
// 执行ExecuteReader()方法得到drSub
SqlDataReader drSub=cmSub.ExecuteReader();
// 显示子版
while(drSub.Read())
{Response.Write("<a href='display1.aspx?subid="+drSub["SubID"]+"' target=_blank>"+drSub["SubName"]+"</a><br>");
}
就是用两个while嵌套输出即可
#5
谢谢各位,看来我要加强自己的学习了,可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的啊?能不能解释一下?我有点看不明白啊!
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
#6
可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的啊?能不能解释一下?我有点看不明白啊!
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
#7
帮up
#8
可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的菜单啊?能不能解释一下?我有点看不明白啊!就找几个关键的代码解释一下,谢谢!
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
#9
可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的菜单啊?能不能解释一下?我有点看不明白啊!就找几个关键的代码解释一下,谢谢!
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
#10
up
#11
up
#12
可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的菜单啊?能不能解释一下?我有点看不明白啊!就找几个关键的代码解释一下,谢谢!
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
#13
up
#1
Rows[i][7] : i = Row Index;7 = Column Index
#2
自己好好的去学学ado.net
#3
谢谢各位,看来我要加强自己的学习了,可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的啊?能不能解释一下?我有点看不明白啊!
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
#4
不一定非得用这样的方法啊
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//连接数据库
string strConn="server=Localhost;uid=sa;pwd=;database=eFrum";
// 创建Connection对象cnMain
SqlConnection cnMain=new SqlConnection(strConn);
// 打开cnMain
cnMain.Open();
// 构造SQL语句,该语句选择所有的主版
String strMain="select * from MainBoards";
// 创建Command对象cmMain
SqlCommand cmMain=new SqlCommand(strMain,cnMain);
// 执行ExecuteReader()方法得到drMain
SqlDataReader drMain=cmMain.ExecuteReader();
// 显示主版
while(drMain.Read())
{Response.Write(Convert.ToString(drMain["MainName"]));
// 创建Connection对象cnSub
SqlConnection cnSub=new SqlConnection(strConn);
// 打开cnSub
cnSub.Open();
// 构造SQL语句,该语句选择主版的所有子版
String strSub="select * from SubBoards where "+
"MainID='"+drMain["MainID"]+"'";
// 创建Command对象cmSub
SqlCommand cmSub=new SqlCommand(strSub,cnSub);
// 执行ExecuteReader()方法得到drSub
SqlDataReader drSub=cmSub.ExecuteReader();
// 显示子版
while(drSub.Read())
{Response.Write("<a href='display1.aspx?subid="+drSub["SubID"]+"' target=_blank>"+drSub["SubName"]+"</a><br>");
}
就是用两个while嵌套输出即可
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
//连接数据库
string strConn="server=Localhost;uid=sa;pwd=;database=eFrum";
// 创建Connection对象cnMain
SqlConnection cnMain=new SqlConnection(strConn);
// 打开cnMain
cnMain.Open();
// 构造SQL语句,该语句选择所有的主版
String strMain="select * from MainBoards";
// 创建Command对象cmMain
SqlCommand cmMain=new SqlCommand(strMain,cnMain);
// 执行ExecuteReader()方法得到drMain
SqlDataReader drMain=cmMain.ExecuteReader();
// 显示主版
while(drMain.Read())
{Response.Write(Convert.ToString(drMain["MainName"]));
// 创建Connection对象cnSub
SqlConnection cnSub=new SqlConnection(strConn);
// 打开cnSub
cnSub.Open();
// 构造SQL语句,该语句选择主版的所有子版
String strSub="select * from SubBoards where "+
"MainID='"+drMain["MainID"]+"'";
// 创建Command对象cmSub
SqlCommand cmSub=new SqlCommand(strSub,cnSub);
// 执行ExecuteReader()方法得到drSub
SqlDataReader drSub=cmSub.ExecuteReader();
// 显示子版
while(drSub.Read())
{Response.Write("<a href='display1.aspx?subid="+drSub["SubID"]+"' target=_blank>"+drSub["SubName"]+"</a><br>");
}
就是用两个while嵌套输出即可
#5
谢谢各位,看来我要加强自己的学习了,可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的啊?能不能解释一下?我有点看不明白啊!
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
#6
可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的啊?能不能解释一下?我有点看不明白啊!
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
代码如下
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i][7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString());
#7
帮up
#8
可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的菜单啊?能不能解释一下?我有点看不明白啊!就找几个关键的代码解释一下,谢谢!
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
#9
可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的菜单啊?能不能解释一下?我有点看不明白啊!就找几个关键的代码解释一下,谢谢!
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
#10
up
#11
up
#12
可这程序中用到下面的代码生成如下网址的菜单 http://www.jzfybjy.com/liou/sccx/uploadfile/23412.jpg ,是怎样生成的菜单啊?能不能解释一下?我有点看不明白啊!就找几个关键的代码解释一下,谢谢!
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
整个代码如下
//生成菜单
private void BindMenu()
{
SiteIdentity siteIdentity = (SiteIdentity)Context.User.Identity;
DataSet ds1 = TreeMenu.GetMenuByLevel(0,siteIdentity.Id);//生成一级菜单
DataSet ds2 = TreeMenu.GetMenuByLevel(1,siteIdentity.Id);//生成二级菜单
if (ds1.Tables.Count==0 || ds2.Tables.Count==0)
Response.Redirect("../Prompt.htm",true);
int menu1count = ds1.Tables[0].Rows.Count;//主菜单个数
int menu2count = ds2.Tables[0].Rows.Count;//二级菜单个数
string menuString="";//菜单字符串
int isedit = 0;
int isshow = 0;
menuString+="<table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/unfolder.jpg\" id='menu' border=0></td><td><font style='font-
size:12px;'> <a href='#' onclick='javascript:window.parent.location.reload()'>办公自动
化系统</a></font></td></tr></table>";
for (int i=0;i<menu1count;i++)
{
//一级菜单创建
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds1.Tables[0].Rows[i][7]!=null && ds1.Tables[0].Rows[i]
[7].ToString().Trim()!="")
isshow = Int32.Parse(ds1.Tables[0].Rows[i][7].ToString
());
if (ds1.Tables[0].Rows[i][6]!=null && ds1.Tables[0].Rows[i]
[6].ToString().Trim()!="")
isedit = Int32.Parse(ds1.Tables[0].Rows[i][6].ToString
());
if (isshow>0)
{
if (isshow>0&&i!=menu1count-1)//modify by malin,original
is---if (i!=menu1count-1)
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/node.gif\" border=0></td><td><a href=\""+ds1.Tables[0].Rows[i]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\" onClick=\"expandIt
(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img src=\"menu/folder.jpg\"
id='folder' border=0> <font style='font-size:12px;'>"+ds1.Tables[0].Rows[i]
[1].ToString()+"</font></a></td></tr></table></div>";
}
else//到了最后一个菜单
{
menuString += "<div id=\"KB"+ds1.Tables[0].Rows
[i][0].ToString()+"Parent\" class=\"parent\"><table cellpadding=0 cellspacing=0
border=0><tr><td><img src=\"menu/lastnode.gif\" border=0></td><td><a href=\""+ds1.Tables
[0].Rows[i][8].ToString()+"\" target=\""+ds2.Tables[0].Rows[i][5].ToString()+"\"
onClick=\"expandIt(\'KB"+ds1.Tables[0].Rows[i][0].ToString()+"\');return false\"><img
src=\"menu/folder.jpg\" id='folder' border=0> <font style='font-
size:12px;'>"+ds1.Tables[0].Rows[i][1].ToString()+"</font></a></td></tr></table></div>";
}
}
menuString += "<div id=\"KB"+ds1.Tables[0].Rows[i][0].ToString()
+"Child\" class=\"child\">";//二级菜单创建
for (int j=0;j<menu2count;j++)
{
isshow=0;//是否显示
isedit=0;//是否编辑
if (ds2.Tables[0].Rows[j][7]!=null && ds2.Tables[0].Rows
[j][7].ToString().Trim()!="")
isshow = Int32.Parse(ds2.Tables[0].Rows[j]
[7].ToString());
if (ds2.Tables[0].Rows[j][6]!=null && ds2.Tables[0].Rows
[j][6].ToString().Trim()!="")
isedit = Int32.Parse(ds2.Tables[0].Rows[j]
[6].ToString());
if (ds2.Tables[0].Rows[j][3].ToString()==ds1.Tables
[0].Rows[i][0].ToString())//如果有某个菜单的子菜单
{
if(j!=menu2count-1)//到最后一个记录的时候,肯定用
最后节点标记
{
//next line is modify by malin,original
is---
if (isshow>0)//显示子菜单但不是最后一个菜
单&& i!=menu1count-1
{
if (ds2.Tables[0].Rows[j+1]
[3].ToString()==ds1.Tables[0].Rows[i][0].ToString())//显示的同时判断下一个记录是否隶属于同一父目
录
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/node.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
else
{
menuString += "<table
border=0 cellpadding=0 cellspacing=0><tr><td><img src=\"menu/vertline.gif\" border=0><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
else if (isshow>0)//modify by malin,original is-
--else
{
menuString += "<table border=0
cellpadding=0 cellspacing=0><tr><td> </td><td><img
src=\"menu/lastnode.gif\" border=0></td><td valign=middle><a href=\""+ds2.Tables[0].Rows[j]
[8].ToString()+"\" target=\""+ds2.Tables[0].Rows[j][5].ToString()+"\" ><img src=\"menu/end.jpg\"
border=0> <font style='font-size:12px;'>"+ds2.Tables[0].Rows[j][1].ToString()
+"</font></a></td></tr></table>";
}
}
}
if ((menuString.Substring(menuString.Length-4,4))=="<br>")
menuString = menuString.Substring(0,menuString.Length-4);
menuString += "</div>";
}
lMenu.Text = menuString;
}
#13
up