# 2 or more levels in Webtoolbar menu

**URL:** <https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765>\
**Category:** Web\
**Created:** [June 8, 2015, 9:03am UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765 "2015-06-08T09:03:11Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yun\_Sut](https://forum.xojo.com/letter_avatar_proxy/v4/letter/y/c67d28/32.png) [@Yun\_Sut](https://forum.xojo.com/u/Yun_Sut)\
**Post date:** [June 8, 2015, 9:03am UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/1 "2015-06-08T09:03:11Z")

</div>

Is there any trick to make 2 or more submenu level in webtoolbar menu?

Thanks in advance

---

<div class="post-metadata">

**Author:** ![Michel\_Bujardet](https://forum.xojo.com/user_avatar/forum.xojo.com/michel_bujardet/32/252_2.png) [@Michel\_Bujardet](https://forum.xojo.com/u/Michel_Bujardet)\
**Post date:** [June 8, 2015, 9:37am UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/2 "2015-06-08T09:37:34Z")

</div>

[quote=192631:@Y Sut]Is there any trick to make 2 or more submenu level in webtoolbar menu?  
[/quote]

Here is how to add a submenu (I modified the WebToolBar example):

[code] Dim chartMenu As New WebMenuItem  
chartMenu.Append(New WebMenuItem(“Line”))  
chartMenu.Append(New WebMenuItem(“Bar”))  
chartMenu.Append(New WebMenuItem(“Pie”))  
chartMenu.Append(New WebMenuItem("-"))  
chartMenu.Append(New WebMenuItem(“3D Line”))  
chartMenu.Append(New WebMenuItem(“3D Bar”))  
chartMenu.Append(New WebMenuItem(“3D Pie”))

// Add a sub menu  
Dim submenu As New WebMenuItem( “SubMenu” )  
submenu.Append( New WebMenuItem( “SubMenu Test 1” ) )  
submenu.Append( New WebMenuItem( “SubMenu Test 2” ) )  
submenu.Append( New WebMenuItem( “SubMenu Test 3” ) )  
chartMenu.Append( submenu )[/code]

---

<div class="post-metadata">

**Author:** ![Yun\_Sut](https://forum.xojo.com/letter_avatar_proxy/v4/letter/y/c67d28/32.png) [@Yun\_Sut](https://forum.xojo.com/u/Yun_Sut)\
**Post date:** [June 8, 2015, 9:44am UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/3 "2015-06-08T09:44:20Z")

</div>

Hi Michel

Many many thanks for your help 🙂 It’s working.

Regards

---

<div class="post-metadata">

**Author:** ![Yun\_Sut](https://forum.xojo.com/letter_avatar_proxy/v4/letter/y/c67d28/32.png) [@Yun\_Sut](https://forum.xojo.com/u/Yun_Sut)\
**Post date:** [June 8, 2015, 10:38am UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/4 "2015-06-08T10:38:34Z")

</div>

Hi Michel

sorry, I re-open this post.

Since I want to make dynamic menu items from database, I am facing trouble with your code. I always got the last Append item (SubMenu Test 3) with this edited source, below. Am I missing something?

[code] Dim chartMenu As New WebMenuItem  
chartMenu.Append(New WebMenuItem(“3D Line”))  
chartMenu.Append(New WebMenuItem(“3D Bar”))  
chartMenu.Append(New WebMenuItem(“3D Pie”))

Dim submenu As New WebMenuItem  
Dim submenu1 As New WebMenuItem

submenu.Text = “SubMenu”  
submenu1 .Text = “SubMenu Test 1”  
submenu.Append(submenu1)

submenu1 .Text = “SubMenu Test 2”  
submenu.Append(submenu1)

submenu1 .Text = “SubMenu Test 3”  
submenu.Append(submenu1)

chartMenu.Append(submenu)[/code]

---

<div class="post-metadata">

**Author:** ![Michel\_Bujardet](https://forum.xojo.com/user_avatar/forum.xojo.com/michel_bujardet/32/252_2.png) [@Michel\_Bujardet](https://forum.xojo.com/u/Michel_Bujardet)\
**Post date:** [June 8, 2015, 11:21am UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/5 "2015-06-08T11:21:58Z")

</div>

[quote=192640:@Y Sut]Hi Michel

sorry, I re-open this post.

Since I want to make dynamic menu items from database, I am facing trouble with your code. I always got the last Append item (SubMenu Test 3) with this edited source, below. Am I missing something?[/quote]

I don’t know where you fetched Submenu.Text ? ? ?

Here is an example of one submenu which contains another level. Just modify this and you will be fine :

[code] // Create the chart menu  
Dim chartMenu As New WebMenuItem  
chartMenu.Append(New WebMenuItem(“Line”))  
chartMenu.Append(New WebMenuItem(“Bar”))  
chartMenu.Append(New WebMenuItem(“Pie”))  
chartMenu.Append(New WebMenuItem("-"))  
chartMenu.Append(New WebMenuItem(“3D Line”))  
chartMenu.Append(New WebMenuItem(“3D Bar”))  
chartMenu.Append(New WebMenuItem(“3D Pie”))

// Add a sub menu  
Dim submenu1 As New WebMenuItem( “SubMenu1” )  
submenu1.Append( New WebMenuItem( “SubMenu1 Test 1” ) )  
submenu1.Append( New WebMenuItem( “SubMenu1 Test 2” ) )  
submenu1.Append( New WebMenuItem( “SubMenu1 Test 3” ) )  
chartMenu.Append( submenu1 )

// Add a sub menu  
Dim SubMenu2 As New WebMenuItem( “SubMenu2” )  
SubMenu2.Append( New WebMenuItem( “SubMenu2 Test 1” ) )  
SubMenu2.Append( New WebMenuItem( “SubMenu2 Test 2” ) )  
SubMenu2.Append( New WebMenuItem( “SubMenu2 Test 3” ) )  
submenu1.Append( submenu2 )[/code]

---

<div class="post-metadata">

**Author:** ![Yun\_Sut](https://forum.xojo.com/letter_avatar_proxy/v4/letter/y/c67d28/32.png) [@Yun\_Sut](https://forum.xojo.com/u/Yun_Sut)\
**Post date:** [June 8, 2015, 11:36am UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/6 "2015-06-08T11:36:12Z")

</div>

I just make the sample first, to simplify my post. Basically I need the submenu items in SubMenu1 & SubMenu2 are populate from database dynamically, not static like the sample what you gave. So, If I need to add the Submenu items, I just add into database.

Wording “Submenu2 Test 1”, “Submenu2 Test 2”, “Submenu2 Test 3” are from database, as well as wording : “Submenu1 Test 1”, “Submenu1 Test 2” and “Submenu1 Test 3”

Hope can you catch what I mean.

Thank s

---

<div class="post-metadata">

**Author:** ![Michel\_Bujardet](https://forum.xojo.com/user_avatar/forum.xojo.com/michel_bujardet/32/252_2.png) [@Michel\_Bujardet](https://forum.xojo.com/u/Michel_Bujardet)\
**Post date:** [June 8, 2015, 11:47am UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/7 "2015-06-08T11:47:45Z")

</div>

[quote=192653:@Y Sut]I just make the sample first, to simplify my post. Basically I need the submenu items in SubMenu1 & SubMenu2 are populate from database dynamically, not static like the sample what you gave. So, If I need to add the Submenu items, I just add into database.

Wording “Submenu2 Test 1”, “Submenu2 Test 2”, “Submenu2 Test 3” are from database, as well as wording : “Submenu1 Test 1”, “Submenu1 Test 2” and “Submenu1 Test 3”

Hope can you catch what I mean.

Thank s[/quote]

You really want to read more about WebMenuItem at [http://documentation.xojo.com/index.php/Webmenuitem](http://documentation.xojo.com/index.php/Webmenuitem) for details.

I recommend you refer to the WebToolBar example in  
Example Projects/Web/Controls/ToolBar/ToolbarExample.xojo\_binary\_project

I modified the code in the ExampleToolBar Open event.

If you want to populate the menu dynamically, use variables instead of quoted text. An array is probably the most convenient, such as :

`// Add a sub menu
Dim mymenu() as String
mymenu(0) = "SubMenu1 Test 1"
mymenu(1) = "SubMenu1 Test 2"
mymenu(2) = "SubMenu1 Test 3"
  Dim submenu1 As New WebMenuItem( "SubMenu1" )
  submenu1.Append( New WebMenuItem(mymenu(0) ) )
  submenu1.Append( New WebMenuItem(mymenu(1) ) )
  submenu1.Append( New WebMenuItem(mymenu(2) ) )
  chartMenu.Append( submenu1 )`

That way you can simply put the data from the database into mymenu() and affect it to menu items.

Then after you have updated the menuitems, you must assign the modified menu to the Chart button :

` // Assign the menu to the chart button
  Dim chartButton As WebToolbarMenu
  chartButton = WebToolbarMenu(Me.ItemWithName("ChartsButton"))
  chartButton.Menu = chartMenu`

---

<div class="post-metadata">

**Author:** ![Yun\_Sut](https://forum.xojo.com/letter_avatar_proxy/v4/letter/y/c67d28/32.png) [@Yun\_Sut](https://forum.xojo.com/u/Yun_Sut)\
**Post date:** [June 8, 2015, 12:35pm UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/8 "2015-06-08T12:35:23Z")

</div>

Got it. Thank you very much 🙂 Very appreciate

---

<div class="post-metadata">

**Author:** ![system](https://forum.xojo.com/uploads/default/original/1X/455b4dcc0e61630e9f81940004ddffa49c432a46.png) [@system](https://forum.xojo.com/u/system)\
**Post date:** [October 29, 2020, 5:47pm UTC](https://forum.xojo.com/t/2-or-more-levels-in-webtoolbar-menu/24765/9 "2020-10-29T17:47:33Z")

</div>


