111,126
社区成员
发帖
与我相关
我的任务
分享
Hashtable myHT_index = new Hashtable();
Hashtable myHT_data = new Hashtable();
String write_tree = "";
protected void NavBar_DataBind()
{
SqlConnection objConn = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"]);
string parentString;
parentString = "select MenuId,MenuName,MenuParent,MenuDepth,MenuLink from sys_ManageMenu where Visible<>0 order by MenuParent asc,MenuOrder";
SqlDataAdapter daParent = new SqlDataAdapter(parentString, objConn);
DataSet dsParent = new DataSet();
objConn.Open();
daParent.FillSchema(dsParent, SchemaType.Source, "parentTable");
daParent.Fill(dsParent, "parentTable");
objConn.Close();
for (int i = 0; i < dsParent.Tables[0].Rows.Count; i++)
{
if (myHT_index.Contains(dsParent.Tables[0].Rows[i]["MenuParent"].ToString()))
{
myHT_index[dsParent.Tables[0].Rows[i]["MenuParent"].ToString()] += "," + dsParent.Tables[0].Rows[i]["MenuId"].ToString();
}
else
{
myHT_index.Add(dsParent.Tables[0].Rows[i]["MenuParent"].ToString(), dsParent.Tables[0].Rows[i]["MenuId"].ToString());
}
if (!myHT_data.Contains(dsParent.Tables[0].Rows[i]["MenuId"].ToString()))
{
myHT_data.Add(dsParent.Tables[0].Rows[i]["MenuId"].ToString(), new string[] { dsParent.Tables[0].Rows[i]["MenuId"].ToString(), dsParent.Tables[0].Rows[i]["MenuName"].ToString(), dsParent.Tables[0].Rows[i]["MenuParent"].ToString(), dsParent.Tables[0].Rows[i]["MenuLink"].ToString() });
}
}
write_tree+="<table>";
show_NavMenu("0", 0);
write_tree+="</table>";
leftNavMenu.Text = write_tree;//leftNavMenu是一个Label
}
protected void show_NavMenu(string MenuParent,int depth)
{
if (myHT_index.Contains(MenuParent))
{
String[] MenuId_item = myHT_index[MenuParent].ToString().Split(',');
for (int i = 0; i < MenuId_item.Length; i++)
{
if (myHT_data.Contains(MenuId_item[i].ToString()))
{
write_tree += "<tr onmouseover=currentcolor=this.style.backgroundColor;this.style.backgroundColor='#C1E1F1' onmouseout=this.style.backgroundColor=currentcolor>";
write_tree += "<td><span style='color:#006666;'>";
for (int j = 0; j < depth; j++)
{
write_tree += "┃";
}
write_tree += "┣ ";
String[] Menu = (String[])myHT_data[MenuId_item[i].ToString()];
if (MenuParent == "0")
{
write_tree += "<span style='font-size:13px;font-weight:bold; cursor:hand;'>" + Menu[1].ToString() + "</span>";
}
else
{
if (Menu[3].IndexOf("?") > 0)
{
write_tree += "<a href='" + Menu[3].ToString() + "&MNid=" + Menu[0].ToString() + "' target='rightFrame'><span style='color:#008787;font-size:11px;'>" + Menu[1].ToString() + "</span></a>";
}
else
{
write_tree += "<a href='" + Menu[3].ToString() + "?MNid=" + Menu[0].ToString() + "' target='rightFrame'><span style='color:#008787;font-size:11px;'>" + Menu[1].ToString() + "</span></a>";
}
}
write_tree += "</span></td>";
write_tree += "</tr>";
if (myHT_index.Contains(MenuId_item[i].ToString()))
{
show_NavMenu(MenuId_item[i].ToString(), depth + 1);
}
}
}
}
}