日期:2014-05-17  浏览次数:20395 次

关于Menu控件的数据绑定问题
数据源是张表:

想得到如下的菜单:

问题就是在
HTML code
<asp:menu id="NavigationMenu" disappearafter="1000" staticdisplaylevels="1" orientation="Horizontal" Font-Names="黑体" target="_blank" runat="server">

标签中可以使用DataSourceID属性进行绑定,但是我不是想整体绑定munu控件 而是在
HTML code
<asp:menu id="NavigationMenu" disappearafter="1000" staticdisplaylevels="1" orientation="Horizontal" Font-Names="黑体" target="_blank" runat="server" DataSourceID>
        <staticmenuitemstyle backcolor="LightSteelBlue" forecolor="Black"/>
        <statichoverstyle backcolor="LightSkyBlue"/>
        <dynamicmenuitemstyle backcolor="#989C79" forecolor="#F6F4DB"/>
        <dynamichoverstyle backcolor="LightSkyBlue" forecolor="Black"/>
        <items>
          <asp:menuitem text="数据库目录">
            <asp:menuitem text="华北">
              <asp:menuitem navigateurl="Products.aspx?id=1" text="北汽福田" />
              <asp:menuitem navigateurl="Products.aspx?id=2" text="天津雷沃" />
              <asp:menuitem navigateurl="Products.aspx?id=3" text="保定长城" />
            </asp:menuitem>
            <asp:menuitem text="华中">
              <asp:menuitem navigateurl="Products.aspx?id=4" text="东风康明斯" />
              <asp:menuitem navigateurl="Products.aspx?id=5" text="东风轻型" />
              <asp:menuitem navigateurl="Products.aspx?id=6" text="东风49" />
            </asp:menuitem>
          </asp:menuitem>
        </items>
    </asp:menu>

下的items中进行按地区的各个绑定
请大伙给个解决的办法



------解决方案--------------------
void LoadMenue()
{
MenuItem item = new MenuItem();
item.Text = "根节点";
//分组得到分区集合
DataTable groupTable = new DataTable();
//所有数据
DataTable sTable = new DataTable();
for (int i = 0; i < groupTable.Rows.Count; i++)
{
DataRow row = groupTable.Rows[i];
DataRow[] rows = sTable.Select("Descn=" + row["Descn"].ToString());
for (int j = 0; j < rows.Count(); j++)
{
BindMenue(item, rows[j]);
}
}
Menu1.Items.Add(item);
}
void BindMenue(MenuItem item, DataRow row)
{
MenuItem Citem = new MenuItem();
item.Text = row["name"].ToString();
item.ChildItems.Add(Citem);
}