zhaolei
2020-11-20 921de2254ff5712a44ed8575ee8efe34252f6603
commit | author | age
921de2 1 using Microsoft.AspNetCore.Components;
Z 2 using Microsoft.AspNetCore.Components.Forms;
3 using System;
4 using System.Collections.Generic;
5 using System.Linq.Expressions;
6
7 namespace Bootstrap.Admin.Pages.Components
8 {
9     /// <summary>
10     /// 表头组件
11     /// </summary>
12     public class LgbTableHeader<TItem> : ComponentBase, ITableHeader
13     {
14 #nullable disable
15         /// <summary>
16         /// 获得/设置 数据绑定 Value
17         /// </summary>
18         [Parameter(CaptureUnmatchedValues = true)]
19         public IReadOnlyDictionary<string, object> AdditionalAttributes { get; set; }
20
21         /// <summary>
22         /// 获得/设置 数据绑定 Value
23         /// </summary>
24         [Parameter] public TItem Value { get; set; }
25 #nullable restore
26
27         /// <summary>
28         /// 获得/设置 ValueChanged 事件
29         /// </summary>
30         [Parameter] public EventCallback<TItem> ValueChanged { get; set; }
31
32         /// <summary>
33         /// 获得/设置 ValueExpression 表达式
34         /// </summary>
35         [Parameter] public Expression<Func<TItem>>? ValueExpression { get; set; }
36
37         /// <summary>
38         /// 获得/设置 是否排序 默认 false
39         /// </summary>
40         [Parameter] public bool Sort { get; set; }
41
42         /// <summary>
43         /// 获得/设置 Table Header 实例
44         /// </summary>
45         [CascadingParameter]
46         protected TableHeaderBase? Header { get; set; }
47
48         /// <summary>
49         /// 组件初始化方法
50         /// </summary>
51         protected override void OnInitialized()
52         {
53             Header?.AddHeaders(this);
54         }
55
56         private FieldIdentifier? _fieldIdentifier;
57         /// <summary>
58         /// 获取绑定字段显示名称方法
59         /// </summary>
60         public string GetDisplayName()
61         {
62             if (_fieldIdentifier == null) _fieldIdentifier = FieldIdentifier.Create(ValueExpression);
63             return _fieldIdentifier?.GetDisplayName() ?? "";
64         }
65
66         /// <summary>
67         /// 获取绑定字段信息方法
68         /// </summary>
69         public string GetFieldName()
70         {
71             if (_fieldIdentifier == null) _fieldIdentifier = FieldIdentifier.Create(ValueExpression);
72             return _fieldIdentifier?.FieldName ?? "";
73         }
74     }
75 }