我正在尝试为Dashboards制作动态菜单, 我有一个Dashboards注册表,它只有一个描述和链接。 注册后,它必须出现在菜单中。
我的新菜单页面将包含一个框架,用于在新页面中打开此链接。
有一种简单的方法可以改变菜单的宁静吗?有这种行为吗?
答案 0 :(得分:1)
我已经改变了NavigationModel.cs
经过搜索很多,没有找到任何这样做的例子。
我已经创建了DynamicNavigation
这样的内容:
public class DynamicDashboards : INavigationItemSource
{
public List<NavigationItemAttribute> GetItems()
{
var items = new List<NavigationItemAttribute>
{
new NavigationMenuAttribute(1000, "Dashboards", "icon-speedometer")
};
using (var connection = SqlConnections.NewByKey("Default"))
{
var dashboards = connection.List<DashboardsRow>();
foreach (var dashboard in dashboards)
items.Add(new NavigationLinkAttribute(1000,
path: "Dashboards/" + dashboard.Descricao.Replace("/", "//"),
url: "~/Dashboards/DefaultDashboard?link=" + dashboard.Link,
permission: CadastrosPermissionKeys.General,
icon: "icon-speedometer"));
}
return items;
}
}
他们NavigationModel.cs
,我正在调用此类,将其插入Items
var dy = new DynamicDashboards();
var dashboardMenu = NavigationHelper.ConvertToNavigationItems(NavigationHelper.ByCategory(dy.GetItems()), x => x != null && x.StartsWith("~/") ? VirtualPathUtility.ToAbsolute(x) : x);
Items[0] = dashboardMenu[0]
在我的情况下,我在仪表板中有一个默认菜单,所以我只是在位置[0]上再次添加它,你可以按照你想要的方式操作它。