diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/TableColumns/TableColumn.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/TableColumns/TableColumn.cs index 0aff01674c..ab0b96297c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/TableColumns/TableColumn.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/Extensibility/TableColumns/TableColumn.cs @@ -11,7 +11,7 @@ namespace Volo.Abp.AspNetCore.Components.Extensibility.TableColumns public string Title { get; set; } public string Data { get; set; } [CanBeNull] - public Func Render { get; set; } + public Type Component { get; set; } public List Actions { get; set; } public TableColumn() diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor index 2ddfef7741..da34af8cf3 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor @@ -27,14 +27,16 @@ RequiredPolicy="@action.RequiredPolicy" Clicked="async () => await action.Clicked(context)" ConfirmationMessage="() => action.ConfirmationMessage.Invoke(context)" - Text="@action.Text"> + Text="@action.Text"> + } else { + Text="@action.Text"> + } } @@ -43,11 +45,11 @@ } else { - @if (column.Render != null) + @if (column.Component != null) { - @column.Render.Invoke(context) + @RenderCustomTableColumnComponent(column.Component, context); } diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs index 34d2e365d7..fd71d87538 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/AbpExtensibleDataGrid.razor.cs @@ -1,32 +1,38 @@ using System; +using Blazorise.Extensions; using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; using System.Collections.Generic; +using JetBrains.Annotations; using Volo.Abp.AspNetCore.Components.Extensibility.TableColumns; namespace Volo.Abp.BlazoriseUI.Components { public partial class AbpExtensibleDataGrid : ComponentBase { - protected Dictionary> ActionColumns = new Dictionary>(); + protected Dictionary> ActionColumns = + new Dictionary>(); - [Parameter] - public IEnumerable Data { get; set; } + [Parameter] public IEnumerable Data { get; set; } - [Parameter] - public EventCallback> ReadData { get; set; } + [Parameter] public EventCallback> ReadData { get; set; } - [Parameter] - public int? TotalItems { get; set; } + [Parameter] public int? TotalItems { get; set; } - [Parameter] - public bool ShowPager { get; set; } + [Parameter] public bool ShowPager { get; set; } - [Parameter] - public int PageSize { get; set; } + [Parameter] public int PageSize { get; set; } - [Parameter] - public IEnumerable Columns { get; set; } + [Parameter] public IEnumerable Columns { get; set; } + protected RenderFragment RenderCustomTableColumnComponent(Type type, object data) + { + return (builder) => + { + builder.OpenComponent(type); + builder.AddAttribute(0, "Data", data); + builder.CloseComponent(); + }; + } } -} +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs index 484527db98..97364e6b8b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleManagement.razor.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Blazorise; -using Blazorise.Extensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Options; @@ -95,7 +94,8 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity { Title = L["RoleName"], Data = nameof(IdentityRoleDto.Name), - Render = (data) => + Component = typeof(RoleNameComponent) + /*Render = (data) => { return (builder) => { @@ -128,7 +128,7 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity builder.CloseComponent(); } }; - } + }*/ }, }); diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleNameComponent.razor b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleNameComponent.razor new file mode 100644 index 0000000000..86d698e2b8 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleNameComponent.razor @@ -0,0 +1,16 @@ +@using System; +@using Volo.Abp.Identity +@using Microsoft.Extensions.Localization +@using Volo.Abp.Identity.Localization + +@inject IStringLocalizer L + +@(Data.As().Name) +@if (Data.As().IsDefault) +{ + @L["DisplayName:IsDefault"] +} +@if (Data.As().IsPublic) +{ + @L["DisplayName:IsPublic"] +} \ No newline at end of file diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleNameComponent.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleNameComponent.razor.cs new file mode 100644 index 0000000000..5c16512afc --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/RoleNameComponent.razor.cs @@ -0,0 +1,9 @@ +using Microsoft.AspNetCore.Components; + +namespace Volo.Abp.Identity.Blazor.Pages.Identity +{ + public partial class RoleNameComponent : ComponentBase + { + [Parameter] public object Data { get; set; } + } +} \ No newline at end of file