BootstrapBlazor 智能生成神器(一)AutoGenerateColumnAttribute 特性介绍
原文连接:https://www.cnblogs.com/ysmc/p/16074645.html
BootstrapBlazor 官网地址:https://www.blazor.zone
介绍
BootstrapBlazor 中的 Table 组件、EditorForm 表单组件、ValidateForm 表单组件 等等组件,都具有根据实体类自动生成相应功能的能力,而这里起到关键作用的就是 AutoGenerateColumnAttribute,从命名可以得知,这是一个特性,让我们来看看他支持哪些功能吧。
属性 | 类型 | 作用 | 说明 |
Order | int | 获得/设置 显示顺序 |
规则如下: >0时排前面,1,2,3... =0时排中间(默认) <0时排后面,...-3,-2,-1 |
Ignore | bool | 获得/设置 是否忽略 | 默认为 false 不忽略 |
DefaultSort | bool | 获得/设置 是否为默认排序列 | 默认为 false |
SkipValidate | bool | 获得/设置 是否不进行验证 | 默认为 false |
IsReadonlyWhenAdd | bool | 获得/设置 新建时此列只读 | 默认为 false |
IsReadonlyWhenEdit | bool | 获得/设置 编辑时此列只读 | 默认为 false |
DefaultSortOrder | SortOrder | 获得/设置 是否为默认排序规则 | 默认为 SortOrder.Unset |
Width | int | 获得/设置 列宽 | |
Fixed | bool | 获得/设置 是否固定本列 | 默认 false 不固定 |
Visible | bool | 获得/设置 列是否显示 | 默认为 true 可见的 |
CssClass | string? | 获得/设置 列 td 自定义样式 | 默认为 null 未设置 |
ShownWithBreakPoint | BreakPoint | 获得/设置 显示节点阈值 | 默认值 BreakPoint.None 未设置 |
FormatString | string? | 格式化字符串 | 如时间类型设置 yyyy-MM-dd |
PlaceHolder | string? | 获得/设置 placeholder 文本 | 默认为 null |
Formatter | Func<object?, Task<string>>? | 获得/设置 列格式化回调委托 | |
HeaderTemplate | RenderFragment<ITableColumn>? | 获得/设置 表头模板 | |
ComponentType | Type? | 获得/设置 组件类型 | 默认为 null |
Template | RenderFragment<object>? | 获得/设置 显示模板 | |
Step | object? | 获得/设置 步长 | 默认为 1 |
Rows | int | 获得/设置 Textarea 行数 | |
PropertyType | Type? | 获得 属性类型 | |
Text | string? | 获得/设置 当前属性显示文字 列头或者标签名称 |
实战
下面我们来看看它在 ValidateForm 组件 与 EditorForm 组件中的表现
实体类 Foo.cs
1 public class Foo
2 {
3 /// <summary>
4 ///
5 /// </summary>
6 [Key]
7 [Display(Name = "主键")]
8 [AutoGenerateColumn(Ignore = true)]
9 public int Id { get; set; }
10
11 /// <summary>
12 ///
13 /// </summary>
14 [Required(ErrorMessage = "{0}不能为空")]
15 [AutoGenerateColumn(Order = 10, Filterable = true, Searchable = true)]
16 [Display(Name = "姓名")]
17 public string? Name { get; set; }
18
19 /// <summary>
20 ///
21 /// </summary>
22 [AutoGenerateColumn(Order = 1, FormatString = "yyyy-MM-dd", Width = 180)]
23 [Display(Name = "日期")]
24 public DateTime? DateTime { get; set; }
25
26 /// <summary>
27 ///
28 /// </summary>
29 [Display(Name = "地址")]
30 [Required(ErrorMessage = "{0}不能为空")]
31 [AutoGenerateColumn(Order = 20, Filterable = true, Searchable = true)]
32 public string? Address { get; set; }
33
34 /// <summary>
35 ///
36 /// </summary>
37 [Display(Name = "数量")]
38 [Required]
39 [AutoGenerateColumn(Order = 40, Sortable = true)]
40 public int Count { get; set; }
41
42 /// <summary>
43 ///
44 /// </summary>
45 [Display(Name = "是/否")]
46 [AutoGenerateColumn(Order = 50)]
47 public bool Complete { get; set; }
48
49 /// <summary>
50 ///
51 /// </summary>
52 [Required(ErrorMessage = "请选择学历")]
53 [Display(Name = "学历")]
54 [AutoGenerateColumn(Order = 60)]
55 public EnumEducation? Education { get; set; }
56
57 /// <summary>
58 ///
59 /// </summary>
60 [Required(ErrorMessage = "请选择一种{0}")]
61 [Display(Name = "爱好")]
62 [AutoGenerateColumn(Order = 70, Editable = false)]
63 public IEnumerable<string> Hobby { get; set; } = new List<string>();
64 }
页面 Foo.razor
1 <ValidateForm Model="@ValidateModel">
2 <EditorForm TModel="Foo">
3 <FieldItems>
4 <EditorItem @bind-Field="@context.DateTime" Readonly="true" />
5 <EditorItem @bind-Field="@context.Hobby" Items="@Hobbys" />
6 </FieldItems>
7 <Buttons>
8 <Button ButtonType="ButtonType.Submit" Icon="fa fa-save" Text='提交' />
9 </Buttons>
10 </EditorForm>
11 </ValidateForm>
呈现效果
同时支持根据实体类属性的特性进行表单验证,非常的好用
BootstrapBlazor 智能生成神器(一)AutoGenerateColumnAttribute 特性介绍的更多相关文章
- Bootstrap Blazor Table 组件(三)智能生成
原文链接:https://www.cnblogs.com/ysmc/p/16201153.html Bootstrap Blazor 官网地址:https://www.blazor.zone 有了解过 ...
- Xcode9新特性介绍-中文篇
背景: Xcode 9 新特性介绍: 1.官方原文介绍链接 2.Xcode9 be ta 2 官方下载链接 本文为官方介绍翻译而来,布局排版等都是按照官方布局来的. 与原文相比,排版上基本还是熟悉的配 ...
- Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性
Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性 Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+ ...
- jdk7和8的一些新特性介绍
jdk7和8的一些新特性介绍 本文是我学习了解了jdk7和jdk8的一些新特性的一些资料,有兴趣的大家可以浏览下下面的内容. 官方文档:http://www.oracle.com/technetwor ...
- ArcGIS 10.3 for Desktop新特性介绍
ArcGIS 10.3是一个完整公布的ArcGIS平台,它包含新的产品(ArcGIS Pro),针对10.2版本号产品进行了功能增强和稳定性的改进. ArcGIS 10.3 for Server新特性 ...
- .NET Standard 2.0 特性介绍和使用指南
.NET Standard 2.0 发布日期:2017年8月14日 公告原文地址 前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时 ...
- .Net大局观(2).NET Core 2.0 特性介绍和使用指南
.NET Core 2.0发布日期:2017年8月14日 前言 这一篇会比较长,系统地介绍了.NET Core 2.0及生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路径.提纲来用. ...
- .Net Core 2.0生态(4):Entity Framework Core 2.0 特性介绍和使用指南
前言 这是.Net Core 2.0生态生态介绍的最后一篇,EF一直是我喜欢的一个ORM框架,随着版本升级EF也发展到EF6.x,Entity Framework Core是一个支持跨平台的全新版本, ...
- .Net Core 2.0 生态(2).NET Core 2.0 特性介绍和使用指南
.NET Core 2.0发布日期:2017年8月14日 前言 这一篇会比较长,介绍了.NET Core 2.0新特性.工具支持及系统生态,现状及未来计划,可以作为一门技术的概述来读,也可以作为学习路 ...
随机推荐
- Oracle之表和字段的注释
给表名加上注释 --给表名加上注释的语法结构 --语法结构:COMMENT ON TABLE 英文表名 IS '中文注释' COMMENT ON TABLE DEPT IS '部门表'; 给字段加上注 ...
- 利用logrotate工具对catalina.out进行日志分割实战
logrotate是linux自带的日志分割工具,如果没有可以用yum安装 yum -y install logrotate 要配置日志分割定时任务,需要在/etc/logrotate.d/下创建一个 ...
- (第三章)TF框架之实现验证码识别
这里实现一个用神经网络(卷积神经网络也可以)实现验证码识别的小案例,主要记录本人做这个案例的流程,不会像之前那么详细,主要用作个人记录用... 这里是验证码的四个字母,被one-hot编码后形成的四个 ...
- .NET MAUI 已在塔架就位 ,4月份RC
最美人间三月天,春光不负赶路人.在充满无限希望的明媚春天里,一路风雨兼程的.NET 团队正奋力实现新的突破. 根据计划,新一代移动开发平台MAUI 将于4月份 发布RC. 目前,MAUI的测试工作和火 ...
- Docker容器和虚拟机区别
Docker .虚拟机之间区别 虚拟机技术的缺点: 1.资源占用太多 2.冗余步骤多 3.启动很慢 容器化技术 1.服务器资源利用率高 2.比较轻量化 3.打包镜像测试,一键运行 比较Docker和虚 ...
- Matplotlib库基础_一
Matplotlib库基础 •pyplot绘制坐标 plt.plot(x,y,format_string,**kwargs) x:x轴数据,列表或数组,可选 y:y轴数据,列表或数组 format_s ...
- 4月11日 python学习总结 对象与类
1.类的定义 #类的定义 class 类名: 属性='xxx' def __init__(self): self.name='enon' self.age=18 def other_func: pas ...
- [SPDK/NVMe存储技术分析]014 - (NVMe over PCIe)Host端的命令处理流程
NVMe over PCIe最新的NVMe协议是1.3. 在7.2.1讲了Command Processing流程.有图有真相. This section describes command subm ...
- Arduino UNO开发板、Arduino CNC Shield V3.0扩展板、A4988驱动板、grbl固件使用教程
前言 CNC Shield V3.0可用作雕刻机,3D打印机等的驱动扩展板,板上一共有4路步进电机驱动模块的插槽,可驱动4路不进电机,而每一路步进电机都只需要2个IO口,也就是说,6个IO口就可以很好 ...
- Citus 分布式 PostgreSQL 集群 - SQL Reference(创建和修改分布式表 DDL)
创建和分布表 要创建分布式表,您需要首先定义表 schema. 为此,您可以使用 CREATE TABLE 语句定义一个表,就像使用常规 PostgreSQL 表一样. CREATE TABLE ht ...