Modify the RedirectURL Property of a Menu
To dynamically modify the redirect URL of a menu item for a specific page, you can handle the PreRender event for the Menu.ascx control (in Menu.ascx.cs or menu.ascx.vb). Then you can modify the RedirectUrl property for the specific menu item. This code for classic menu would look something like:
Me.Menu.Menu1MenuItem.Button.RedirectUrl = "http://...?Session=" & SessionVar
Me.Menu gives you the menu and Menu1MenuItem gives you the first menu item. You can use Menu2/3/4/etc. for the appropriate menu item in the menu. Menus are really buttons, so you need to access the button control inside the menu item. Use the Me.Menu.Button property for this. Then, set the RedirectUrl for the button (menu).
In the example above, RedirectUrl is set to a URL composed using information stored in a session variable. However, you can compose the URL in a manner of your choosing.
Please note that you should also set the RedirectUrl for the highlighted version of the menu as well:
Me.Menu.Menu1MenuItemHilited.Button.RedirectUrl = "http://...?Session=" & SessionVar
For multilevel menu you need to use different class:
Me.MultiLevelMenu.Items.NavigateUrl = "http://...?Session=" & SessionVar
Where MultilevelMenu.Items is a collection of items, each of them has its own collection as well.