Bootstrap Blazor UI 中 <Table> 组件 <TableColumn> 使用备忘01:EF Core 外码处理
应用场景:将外码转换为对应的文本进行显示、编辑。
例如,有一个【用户】表,其中有一个【用户类型ID】字段;另有一个【用户类型】表,包含【ID】、【名称】等字段。现在要求在 <Table> 组件显示列表中,列标题显示为【用户类型】、内容为【名称】字段的值;编辑时相同处理。
处理思路:在 列 模板中,同时使用 <Template> 和 <EditTemplate>,使用 EF Core 通过 DbContext 读取数据库中的数据。
<TableColumns>
<TableColumn @bind-Field="@context.用户类型ID" Text="用户类型">
<Template Context="c">
@DbContext.用户类型s.FirstAsync(i => i.id == c.Row.用户类型ID).Result.名称
</Template>
<EditTemplate Context="c">
<div class="col-12 col-sm-6">
<Select DisplayText="用户类型" @bind-Value="c.用户类型ID" Items="DbContext.用户类型s.Select(s=>new SelectedItem(s.id.ToString(),s.名称)).ToListAsync().Result" />
</div>
</EditTemplate>
</TableColumn>
............
</TableColumns>