BootstrapBlazor智能生成神器(一)AutoGenerateColumnAttribute特性介绍

博客 动态
0 253
羽尘
羽尘 2022-03-31 09:57:22
悬赏:0 积分 收藏

BootstrapBlazor 智能生成神器(一)AutoGenerateColumnAttribute 特性介绍

原文连接:https://www.cnblogs.com/ysmc/p/16074645.html

BootstrapBlazor 官网地址:https://www.blazor.zone

介绍

  BootstrapBlazor 中的 Table 组件、EditorForm 表单组件、ValidateForm 表单组件 等等组件,都具有根据实体类自动生成相应功能的能力,而这里起到关键作用的就是 AutoGenerateColumnAttribute,从命名可以得知,这是一个特性,让我们来看看他支持哪些功能吧。

属性类型作用说明
Orderint 获得/设置 显示顺序

规则如下:

>0时排前面,1,2,3...

=0时排中间(默认)

<0时排后面,...-3,-2,-1

Ignorebool获得/设置 是否忽略默认为 false 不忽略
DefaultSortbool 获得/设置 是否为默认排序列默认为 false
SkipValidatebool获得/设置 是否不进行验证默认为 false
IsReadonlyWhenAddbool获得/设置 新建时此列只读默认为 false
IsReadonlyWhenEditbool获得/设置 编辑时此列只读默认为 false
DefaultSortOrderSortOrder获得/设置 是否为默认排序规则默认为 SortOrder.Unset
Widthint 获得/设置 列宽 
Fixedbool获得/设置 是否固定本列默认 false 不固定
Visiblebool获得/设置 列是否显示默认为 true 可见的
CssClassstring?获得/设置 列 td 自定义样式默认为 null 未设置
ShownWithBreakPointBreakPoint获得/设置 显示节点阈值默认值 BreakPoint.None 未设置
FormatStringstring?格式化字符串如时间类型设置 yyyy-MM-dd
PlaceHolderstring?获得/设置 placeholder 文本默认为 null
FormatterFunc<object?, Task<string>>?获得/设置 列格式化回调委托 
HeaderTemplateRenderFragment<ITableColumn>?获得/设置 表头模板 
ComponentTypeType?获得/设置 组件类型默认为 null
TemplateRenderFragment<object>?获得/设置 显示模板 
Stepobject?获得/设置 步长默认为 1
Rowsint获得/设置 Textarea 行数 
PropertyTypeType?获得 属性类型 
Textstring?获得/设置 当前属性显示文字 列头或者标签名称

 

 

实战

  下面我们来看看它在 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>

 

呈现效果

 

同时支持根据实体类属性的特性进行表单验证,非常的好用

 

posted @ 2022-03-31 09:34 一事冇诚 阅读(16) 评论(0) 编辑 收藏 举报
回帖
    羽尘

    羽尘 (王者 段位)

    2335 积分 (2)粉丝 (11)源码

     

    温馨提示

    亦奇源码

    最新会员