zoukankan      html  css  js  c++  java
  • ABP文档

    文档目录

    本节内容:

    每个web应用都有一些菜单用来在页面/屏幕之间导航,ABP提供了一个通用的基础框架创建并显示菜单给用户。

    创建菜单

    一个应用可能由不同模块组成,每个模块可以有它自己的菜单项,为了定义菜单项,我们需要创建一个继承于NavigationProvider的类。

    假设有一个如下所示的主菜单:

    • Tasks
    • Reports
    • Administration
      • User management
      • Role management

    这里,Administration菜单有两个子菜单项,创建这么一个菜单的导航供应器类应该如下所示:

    public class SimpleTaskSystemNavigationProvider : NavigationProvider
    {
        public override void SetNavigation(INavigationProviderContext context)
        {
            context.Manager.MainMenu
                .AddItem(
                    new MenuItemDefinition(
                        "Tasks",
                        new LocalizableString("Tasks", "SimpleTaskSystem"),
                        url: "/Tasks",
                        icon: "fa fa-tasks"
                        )
                ).AddItem(
                    new MenuItemDefinition(
                        "Reports",
                        new LocalizableString("Reports", "SimpleTaskSystem"),
                        url: "/Reports",
                        icon: "fa fa-bar-chart"
                        )
                ).AddItem(
                    new MenuItemDefinition(
                        "Administration",
                        new LocalizableString("Administration", "SimpleTaskSystem"),
                        icon: "fa fa-cogs"
                        ).AddItem(
                            new MenuItemDefinition(
                                "UserManagement",
                                new LocalizableString("UserManagement", "SimpleTaskSystem"),
                                url: "/Administration/Users",
                                icon: "fa fa-users",
                                requiredPermissionName: "SimpleTaskSystem.Permissions.UserManagement"
                                )
                        ).AddItem(
                            new MenuItemDefinition(
                                "RoleManagement",
                                new LocalizableString("RoleManagement", "SimpleTaskSystem"),
                                url: "/Administration/Roles",
                                icon: "fa fa-star",
                                requiredPermissionName: "SimpleTaskSystem.Permissions.RoleManagement"
                                )
                        )
                );
        }
    } 

    一个MenuItemDefinition主要拥有一个唯一的name,一个本地化的display name,一个url和一个icon。

    • 一个菜单项,可能需要一个许可,用来把自己显示给一个特殊的用户(查看授权文档),requiredPermissionName属性就是用在这种情况里。
    • 一个菜单项,可能依赖于一个功能,featureDependency属性就是用在这种情况里。
    • 一个菜单项,可以定义一个customData(用户数据)和order(顺序位置)。

    INavigationProviderContext拥有获取菜单项、添加菜单和菜单项的方法,因此,不同模块可以添加自己的项到菜单里。

    一个应用里可能有一个或多个菜单,context.Manager.MainMenu指向默认的主菜单,我们可以用context.Manager.Menus属性创建并添加更多的菜单。

    注册导航供应器

    在创建完导航供应器后,应该在我们模块的PreInitialize事件里注册它:

    Configuration.Navigation.Providers.Add<SimpleTaskSystemNavigationProvider>(); 

      

    显示菜单

    我们可以注入IUserNavigationManager,用它来获取菜单项并显示给用户,因此我们可以在服务端创建菜单。

    ABP自动生成一个javascript api,在客户端里,用它获取菜单和项 ,abp.nav命名空间里的方法和对象就是用来支持这些操作,例如:可以用abp.nav.menus.MainMenu获取应用的主菜单,因此我们也可以在客户端创建菜单。

    ABP模板使用这个系统为用户创建并显示菜单。你可用模板创建一个项目并查看源码,获取更多信息。

    kid1412附:英文原文:http://www.aspnetboilerplate.com/Pages/Documents/Navigation

  • 相关阅读:
    PAT A1017 Queueing at Bank [硬核模拟]
    PAT A1105 Spiral Matrix [硬核模拟]
    PAT A1153 Decode Registration Card of PAT [排序模拟]
    PAT A1139 First Contact [图]
    jquery的animate动画
    wordpress建站过程5——footer.php
    wordpress建站过程4——index.php
    wordpress建站过程3——header.php
    HTML中加载flash方法
    轮播图的原理
  • 原文地址:https://www.cnblogs.com/kid1412/p/6018903.html
Copyright © 2011-2022 走看看