私は以下のようなデータテーブルを持っています:
id menuname url parentid
1 Home ~/Home.aspx NULL
2 Product ~/products.aspx NULL
3 Services ~/services.aspx NULL
4 ERP ~/erp.aspx 2
5 HRM ~/hrm.aspx 4
7 Payroll ~/payroll.aspx 4
8 Programming ~/programming.aspx 3
9 Advertising ~/advert.aspx 3
10 Television Advert ~/tvadvert.aspx 9
11 Radio Advert ~/radioadvert.aspx 9
........
........
したがって、上記のデータテーブルに基づいてメニュー項目を順序付けられていないリストに生成して、親 ID が null の項目が最初のレベルのメニューになり、その他の項目が親 ID に基づいてサブメニューになるようにします。
<ul class="menu">
<li><a href="home.aspx">Home</a></li>
<li><a href="produc.aspx">Product</a>
<ul>
<li>
<a href="erp.aspx">ERP</a>
<ul>
<li><a href="hrm.aspx">HRM</a></li>
<li><a href="payroll.aspx">Payroll</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="services.aspx">Services</a>
<ul>
<li><a href="programming.aspx">Advertising</a></li>
<li><a href="advert.aspx">Programming</a></li>
</ul>
</li>
.....etc
</ul>
以下は不完全に見える私のコードです:
public static String AddToList()
{
DataTable table = new DataTable();
table = GetMenus();
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (DataRow row in table.Rows())
{
string parentId = row["parentmenuId"].ToString();
//string url = Server.MapPath(m.Url);
if (string.IsNullOrEmpty(parentId))
{
sb.Append(String.Format("<ul class=\"menu\"><li><a href=\"{0}\">{1}</a></li></ul>", row["Url"].ToString(), row["Description"].ToString()));
}
}
return sb.ToString();
}
This gets all top menu but all other effort to get submenu doesnt work. Pls help me out.
Thanks in advance