Hi,
The equivalent of DynamicHorizontalOffset on our menu is this property:
http://www.essentialobjects.com/ViewDoc.aspx?t=EO.Web.MenuGroup.OffsetX.htmlNote it is defined on MenuGroup object instead of Menu object. This allows you to fine tune the position of each Menu Group (a sub menu popup, which ASP.NET calls dynamic menu) independently.
The notion of Orientation is similar. While the Orientation exists on the Menu object, it only controls top level. So when Orientation is set to Vertical on the menu, the top level is vertical, when it is set to Horizontal on the menu, the top level is horizontal. All sub menus are still vertical in this case.
In order to set Orientation on the sub menu, use Orientation on the BaseMenuItemGroup (this is the base class for MenuGroup) object:
http://www.essentialobjects.com/ViewDoc.aspx?t=EO.Web.BaseMenuItemGroup.Orientation.htmlWe support this property on the Menu Group level so that each menu group's orientation can be set interpedently. For example, the first sub menu can be horizontal; the second can be vertical, etc.
When you populate the menu from a datasource, the sub menus do not exist at design time. So you can't set those properties at design time. You would need to set them at runtime instead. The easiest way is to handle ItemDataBound event. This event is called for each menu item after it is created from data source. Inside this event you can do:
Code: C#
protected void Menu1_ItemDataBound(
object sender, EO.Web.NavigationItemEventArgs e)
{
e.MenuItem.SubMenu.Orientation = EO.Web.Orientation.Horizontal;
}
This way it sets all sub menus’ Orientation to Horizontal. You can also apply complex business logic here, for example, you can do:
Code: C#
if (e.MenuItem.Level > 1)
e.MenuItem.SubMenu.Orientation = EO.Web.Orientation.Horizontal;
This way you are only setting items that are level 2 and above to horizontal.
You can set OffsetX the same way.
Hope this helps. Please feel free to let us know if you have any more questions.
Thanks