Context Menu for Navigation
The Context Menu can be used to navigate between different pages in the application. It can generate the needed links for you through its UrlField
when data binding.
To use the Context Menu for navigating between pages:
- Add the ContextMenu to your application and choose a target or show it with your own code.
- Provide a collection of models that describe the pages you want the user to navigate to.
- Populate its
UrlField
with the corresponding data from the model or provide aUrl
property in the model.
@* This a basic example of a Context Menu used as Navigation. *@
<div id="navigation-trigger" style="height: 100px; background: yellow;">
right click me for navigation options<br />I could be a hamburger icon or other trigger that suits your design
</div>
<TelerikContextMenu Data="@MenuData" Selector="#navigation-trigger">
</TelerikContextMenu>
@code {
public List<MenuModel> MenuData { get; set; }
protected override void OnInitialized()
{
GenerateMenuData();
}
public void GenerateMenuData()
{
MenuData = new List<MenuModel>()
{
new MenuModel()
{
Text = "Contact us",
Url = "/contacts",
Icon = SvgIcon.Envelope
},
new MenuModel()
{
Text = "Settings",
Url = "/settings",
Icon = SvgIcon.Gear,
Items = new List<MenuModel>()
{
new MenuModel()
{
Text = "Profile Settings",
Url = "/profile",
Icon = SvgIcon.User
},
new MenuModel()
{
Text = "Language Settings",
Url = "/language",
Icon = SvgIcon.Globe
}
}
}
};
}
public class MenuModel
{
public string Text { get; set; }
public string Url { get; set; }
public ISvgIcon Icon { get; set; }
public List<MenuModel> Items { get; set; }
}
}
Notes
- The
UrlField
has a default value (Url
) and that will be used if present in the model even if you do not define it explicitly. -
The component uses the
NavigationManager
from the framework to perform the navigation based on the value from theUrlField
.- If you have a template that adds anchors, or use a click event to navigate the user yourself, this may lead to double navigation and errors, especially if your model has a field called
Url
. To avoid such problems, either let the Telerik component do the navigation and remove the application-specific code that does it as well, or remove the URL setting (either rename the model field, or point theUrlField
to a non-existing field).
- If you have a template that adds anchors, or use a click event to navigate the user yourself, this may lead to double navigation and errors, especially if your model has a field called