请教程序中的代码是什么意思啊?谢谢!

时间:2021-04-11 21:17:39
请教程序中的代码是什么意思啊?谢谢!
我有一个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;'>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;<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());

#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嵌套输出即可

#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());

#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());

#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;'>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;<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;'>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;<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;'>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;<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());

#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嵌套输出即可

#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());

#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());

#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;'>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;<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;'>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;<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;'>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;<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>&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;<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