ASP.Menu Control的Click事件未触发

时间:2011-06-30 12:21:33

标签: c# .net asp.net visual-studio

我有一个ASP.NET菜单控件,我使用XmlDataSource绑定到XPath。 现在,菜单结构就像,

  • MenuItem1 - MenuSubItem1,MenuSubItem2,...
  • MenuItem2 - MenuSubItem1,MenuSubItem2,...
  • ...... ......

这很奇怪但Menu_MenuItemClick事件仅针对menuItem1下的SubItems而不是针对其他MenuItems下的SubItems触发。

任何想法?

1 个答案:

答案 0 :(得分:1)

查看下面的代码,它将帮助您使用xml文件绑定菜单控件,

    private void CreateMenuWithXmlFile()
    {
       string path = @"C:\MyXmlFile.xml";
       DataSet ds = new DataSet();
       ds.ReadXml(path);
       Menu menu = new Menu();
       menu.MenuItemClick += new MenuEventHandler(menu_MenuItemClick);

       for (int i = 0; i < ds.Tables.Count; i++)
       {
        MenuItem parentItem = new MenuItem((string)ds.Tables[i].TableName);
        menu.Items.Add(parentItem);

        for (int c = 0; c < ds.Tables[i].Columns.Count; c++)
        {
          MenuItem column = new MenuItem((string)ds.Tables[i].Columns[c].ColumnName);
          menu.Items.Add(column);

        for (int r = 0; r < ds.Tables[i].Rows.Count; r++)
        {
         MenuItem row = new MenuItem((string)ds.Tables[i].Rows[r][c].ToString());
          parentItem.ChildItems.Add(row);
        }
    }
   }

   Panel1.Controls.Add(menu);
   Panel1.DataBind();
 }