Ik moet een menu maken met entries uit een database, afhankelijk van welke entries er terugkomen uit de db worden er root items gemaakt met daarin een subitem (nooit dieper dan 1).
Nu ben ik begonnen met een stukje test code (kijken hoe ik het het beste kan doen). Ik had het onderstaande stukje geschreven en tot mijn verbazing werkt het niet goed?!
Ik maak dus 2 subitems (a en b). Hierna maak ik het root item (t), en koppel ik de subitems aan het root item. Daarna voeg ik ze nog toe aan de control op de pagina (navMenu).
Als ik dit uitvoer krijg ik dus netjes het root item te zien (t) maar daarin staat alleen de laatst toegevoegde item (b dus)
Ook wanneer ik deze code gebruik
krijg ik nog precies hetzelfde resultaat. Heel vreemd aangezien ik ze toch toevoegd op een andere index...
Nu ben ik begonnen met een stukje test code (kijken hoe ik het het beste kan doen). Ik had het onderstaande stukje geschreven en tot mijn verbazing werkt het niet goed?!
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| navMenu.Items.Clear(); //2 submenus maken MenuItem a = new MenuItem(); a.Text = "Test2"; a.Value = "hoihoib.aspx"; MenuItem b = new MenuItem(); a.Text = "Test3"; a.Value = "hoihoia.aspx"; //root item MenuItem t = new MenuItem(); t.Text = "Test1"; t.Value = "blaat.aspx"; //submenus aan de root toevoegen t.ChildItems.Add(a); t.ChildItems.Add(b); //root aan de control toevoegen navMenu.Items.Add(t) |
Ik maak dus 2 subitems (a en b). Hierna maak ik het root item (t), en koppel ik de subitems aan het root item. Daarna voeg ik ze nog toe aan de control op de pagina (navMenu).
Als ik dit uitvoer krijg ik dus netjes het root item te zien (t) maar daarin staat alleen de laatst toegevoegde item (b dus)
Ook wanneer ik deze code gebruik
C#:
1
2
| t.ChildItems.AddAt(0,a); t.ChildItems.AddAt(1,b); |
krijg ik nog precies hetzelfde resultaat. Heel vreemd aangezien ik ze toch toevoegd op een andere index...