ASP.NET C# HTML Menu
/*
隨著年紀越來越大記性越來越沒有,故 放在網路上讓自己要用的時候隨時可以參考
ASP.NET C# HTML Menu 透過資料庫記錄功能表各項設定產生無限迴圈式的資料表,並搭配Literal 產生文字的TAG處理方式,讓MENU可以透過CSS文字格式設定更有效率的依據美編所編排的網頁顯示效果呈現出
因為,每次版面不一,故 無法成為物件,必須每次都重新設定
*/
SqlConnection conn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
StringBuilder menuitem = new StringBuilder();
protected void Page_Load(object sender, EventArgs e)
{
menuitem.Append("<ul id=\"mainMenu\" class=\"easyClearing\"><table width=\"890\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>");
rootitem(0);
menuitem.Append("</tr></table></ul>");
menulist.Text = menuitem.ToString();
}
public void rootitem(int a0) //stastic menu item 固定功能表選項
{
Menu backmenu = new Menu();
conn.Close();
conn.Open();
SqlCommand cmd1 = new SqlCommand("SELECT * FROM proitem WHERE Parent_ID="+a0.ToString(), conn);
SqlDataAdapter da1 = new SqlDataAdapter(cmd1);
DataTable dt1 = new DataTable();
da1.Fill(dt1);
if (dt1.Rows.Count > 0)
{
for (int i1 = 0; i1 < dt1.Rows.Count; i1++)
{
menuitem.Append("<td class=\"space\"> </td><td><li class=\"" + dt1.Rows[i1][5].ToString() + "\" onmouseout=\"changeClass(this,'" + dt1.Rows[i1][5].ToString() + "')\" onmouseover=\"changeClass(this,'" + dt1.Rows[i1][6].ToString() + "')\" accesskey=\"O\" onclick=\"window.location.href='/" + dt1.Rows[i1][3].ToString() + "'\">" + dt1.Rows[i1][4].ToString() + "<ul class=\"" + dt1.Rows[i1][7].ToString() + "\">");
subitem1(int.Parse(dt1.Rows[i1][0].ToString()), dt1.Rows[i1][7].ToString());
menuitem.Append("</ul></td>");
}
}
conn.Close();
}
public void subitem1(int a1,string cssname) //dynamic menu item 子功能表選項1
{
conn.Close();
conn.Open();
SqlCommand cmd3 = new SqlCommand(@"SELECT * FROM proitem WHERE Parent_ID =" + a1 , conn);
SqlDataAdapter da3 = new SqlDataAdapter(cmd3);
DataTable dt3 = new DataTable();
da3.Fill(dt3);
for (int i3 = 0; i3 < dt3.Rows.Count; i3++)
{menuitem.Append("<li><a href=\""+dt3.Rows[i3][4].ToString()+"\" target=\"_parent\">"+dt3.Rows[i3][4].ToString()+"</a></li>");}
}
public void subitem2(int a2,string cssname)//dynamic menu item 子功能表選項2
{
conn.Close();
conn.Open();
SqlCommand cmd4 = new SqlCommand(@"SELECT * FROM proitem WHERE Parent_ID =" + a2, conn);
SqlDataAdapter da4 = new SqlDataAdapter(cmd4);
DataTable dt4 = new DataTable();
da4.Fill(dt4);
for (int i4 = 0; i4 < dt4.Rows.Count; i4++)
{menuitem.Append("<li><a href=\"" + dt4.Rows[i4][4].ToString() + "\" target=\"_parent\">" + dt4.Rows[i4][4].ToString() + "</a></li>");}
}