ABP设置管理模块: Abp.SettingUi (2)

ABP设置管理模块: Abp.SettingUi

那么我们如何自定义这些设置的分组呢? 有两种方式:

使用 WithProperty 方法

WithProperty 方法是由ABPSettingDefinition类提供的一个方法, 我们可以直接在设置定义中使用它:

MyAbpApp.Domain 项目 - Settings/MyAbpAppSettingDefinitionProvider 类

context.Add( new SettingDefinition( "Connection.Ip", // 设置名称 "127.0.0.1", // 默认值 L("DisplayName:Connection.Ip"), // 显示名称 L("Description:Connection.Ip") // 描述 ) .WithProperty(SettingUiConst.Group1, "Server") .WithProperty(SettingUiConst.Group2, "Connection") );

常量 Group1 和 Group2 定义在 SettingUiConst类中

设置 "Group1" 为 "Server", "Group2" 为 "Connection"

然后我们应该为这两个分组名字提供本地化资源:

MyAbpApp.Domain.Shared 项目

Localization/MyAbpApp/en.json

{ "culture": "en", "texts": { ... "Server": "Server", "Connection": "Connection" } }

Localization/MyAbpApp/zh-Hans.json

{ "culture": "zh-Hans", "texts": { ... "Server": "服务器", "Connection": "连接" } }

重新启动应用程序查看分组名称是否正确设置

ABP设置管理模块: Abp.SettingUi

使用设置属性文件

另一种分组方式是使用设置分组文件, 该方式由SettingUi模块提供. 当你不太容易修改设置的定义, 或者你想将分组信息汇集在一个单独的位置时, 这种方式很有用.

为了演示这种方式, 让我们定义一个新设置:

MyAbpApp.Domain 项目 - Settings/MyAbpAppSettingDefinitionProvider 类

new SettingDefinition( "Connection.Port", 8080.ToString(), L("DisplayName:Connection.Port"), L("Description:Connection.Port") )

为这个设置添加本地化的步骤省略了.

然后我们需要创建一个新的任意名字的JSON文件, 但是路径必须为"/SettingProperties", 这是因为SettingUi模块将会从这个路径下查找设置属性文件.

MyAbpApp.Domain.Shared 项目 - /SettingProperties/MySettingProperties.json 文件

{ "Connection.Port": { "Group1": "Server", "Group2": "Connection" } }

设置名称 Connection.Port 做为JSON对象的键

使用 "Group1" 和 "Group2" 来设置分组名称

重新启动应用程序来查看新分组的设置

ABP设置管理模块: Abp.SettingUi

设置类型

默认情况下, 一个设置的值是字符串类型, 将会在UI中渲染为一个文本输入控件. 我们可以简单地提供一个设置属性"Type"来定制它:

MyAbpApp.Domain.Shared 项目 - /SettingProperties/MySettingProperties.json 文件

{ "Connection.Port": { "Group1": "Server", "Group2": "Connection", "Type": "number" } }

"Connection.Port" 设置类型为 "number"

不用重新启动应用程序, 只需要按下F5来刷新浏览器, 你可以立即看到效果:

ABP设置管理模块: Abp.SettingUi

现在输入的类型变更为了"数字", 并且前端的验证也生效了.

设置类型也可以通过 WithProperty 方法来配置, 如 WithProperty("Type", "number")

目前SettingUi支持以下几种设置类型:

text (默认)

number

checkbox

select

需要一个额外属性 "Options" 来提供选项, 是一个使用竖线(|)分隔的字符串

"Connection.Protocol": { "Group1": "Server", "Group2": "Connection", "Type": "select", "Options": "|HTTP|TCP|RDP|FTP|SFTP" }

渲染结果:

ABP设置管理模块: Abp.SettingUi

到这里教程就结束了. 通过本教程, 你应该可以轻松地使用SettingUi来管理你的设置了. 教程的源码可以在sample文件夹中找到.

本地化

SettingUi模块使用ABP的本地化系统来显示设置的本地化信息. 现在支持的语言有:

英语

简体中文

土耳其语

本地化资源存放在EasyAbp.Abp.SettingUi.Domain.Shared项目的/Localization/SettingUi中.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppxzw.html