2011-06-30 36 views
0

我有ASP.NET菜单控件,我使用XPath绑定到XmlDataSource。 现在,菜单结构是这样,ASP.Menu控件的Click事件没有触发

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

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

任何想法?它下面

+0

做ü意思''Menu_Click'或MenuItemClick'什么? –

+0

是的,我的意思是MenuItemClick事件。此外,该页面正在回发所有权利,我可以看到EventTarget/EventArgument表单项目是正确的。 – EagerToLearn

+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(); 
}