2011-06-30 1 views
0

J'ai un contrôle ASP.NET de menu que je lie à un XmlDataSource en utilisant XPath. Maintenant, la structure de menu est comme,ASP.Menu événement de contrôle Click pas de tir

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

Il est étrange, mais l'événement Menu_MenuItemClick est déclenché uniquement pour les sous-éléments sous menuItem1 mais pas pour les sous-éléments sous d'autres éléments MenuItems.

Une idée?

+0

do u signifie '' MenuItemClick' par Menu_Click' ou quoi? –

+0

Oui, je veux dire l'événement MenuItemClick. De plus, la page est retournée correctement et je peux voir les éléments EventTarget/EventArgument Form corrects. – EagerToLearn

+0

vérifiez si vous reliez votre menu en post retour –

Répondre

1

Découvrez ci-dessous le code, il vous aidera à lier le contrôle de menu à l'aide d'un fichier 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(); 
} 
Questions connexes