From 5982e283a89907ea4b2ab10f59809ecbb41fef54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C4=B0smail=20=C3=87A=C4=9EDA=C5=9E?= Date: Mon, 2 Feb 2026 19:20:05 +0300 Subject: [PATCH] several bug fixes for MudBlazor --- .../src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs | 6 +++++- .../Components/AbpMudExtensibleDataGrid.razor | 7 ++++--- .../Components/AbpMudExtensibleDataGrid.razor.cs | 12 ++++++++++-- .../ResourcePermissionManagementModal.razor | 8 ++++---- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs b/framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs index 933001e8ae..c6a52335c3 100644 --- a/framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs +++ b/framework/src/Volo.Abp.MudBlazorUI/AbpMudCrudPageBase.cs @@ -177,7 +177,7 @@ public abstract class AbpMudCrudPageBase< [Inject] protected ISnackbar Snackbar { get; set; } = default!; [Inject] protected ExtensionPropertyPolicyChecker ExtensionPropertyPolicyChecker { get; set; } = default!; - protected virtual int PageSize { get; } = LimitedResultRequestDto.DefaultMaxResultCount; + protected virtual int PageSize { get; set; } = LimitedResultRequestDto.DefaultMaxResultCount; protected int CurrentPage = 1; protected string CurrentSorting = default!; @@ -362,6 +362,10 @@ public abstract class AbpMudCrudPageBase< .Select(s => MapSortFieldToPropertyName(s.SortBy, columns) + (s.Descending ? " DESC" : "")) .JoinAsString(","); CurrentPage = state.Page + 1; + if (state.PageSize > 0) + { + PageSize = state.PageSize; + } try { diff --git a/framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor b/framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor index ccab410c7a..272bb154d5 100644 --- a/framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor +++ b/framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor @@ -3,7 +3,7 @@ @using Volo.Abp.Data + Bordered="false" Hover="true" Class="@Class" RowsPerPage="@PageSize" CurrentPage="@ZeroBasedCurrentPage"> @@ -65,7 +65,8 @@ } else { - if (!ExtensionPropertiesRegex.IsMatch(column.Data)) + var hasExtensionPropertyData = !string.IsNullOrWhiteSpace(column.Data) && ExtensionPropertiesRegex.IsMatch(column.Data!); + if (!hasExtensionPropertyData) { @if (column.ValueConverter == null) { @@ -90,7 +91,7 @@ @{ var entity = context.Item as IHasExtraProperties; - var propertyName = ExtensionPropertiesRegex.Match(column.Data).Groups[1].Value; + var propertyName = ExtensionPropertiesRegex.Match(column.Data!).Groups[1].Value; var propertyValue = entity?.GetProperty(propertyName); if (propertyValue != null && propertyValue.GetType() == typeof(bool)) { diff --git a/framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor.cs b/framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor.cs index 95f1fb8924..1d2f7428e4 100644 --- a/framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor.cs +++ b/framework/src/Volo.Abp.MudBlazorUI/Components/AbpMudExtensibleDataGrid.razor.cs @@ -38,6 +38,8 @@ public partial class AbpMudExtensibleDataGrid : ComponentBase [Parameter] public string ActionColumnWidth { get; set; } = "150px"; + protected int ZeroBasedCurrentPage => CurrentPage > 0 ? CurrentPage - 1 : 0; + [Inject] public IStringLocalizerFactory StringLocalizerFactory { get; set; } = default!; @@ -167,12 +169,18 @@ public partial class AbpMudExtensibleDataGrid : ComponentBase protected virtual Func? GetExtensionPropertySortFunc(TableColumn column) { - if (!column.Sortable) + if (!column.Sortable || string.IsNullOrWhiteSpace(column.Data)) + { + return null; + } + + var match = ExtensionPropertiesRegex.Match(column.Data); + if (!match.Success) { return null; } - var propertyName = ExtensionPropertiesRegex.Match(column.Data).Groups[1].Value; + var propertyName = match.Groups[1].Value; return item => { var entity = item as IHasExtraProperties; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Components/ResourcePermissionManagementModal.razor b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Components/ResourcePermissionManagementModal.razor index 66bb770906..37c034cee8 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Components/ResourcePermissionManagementModal.razor +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor.MudBlazor/Components/ResourcePermissionManagementModal.razor @@ -105,8 +105,8 @@ RequiredError="@L["ThisFieldIsRequired"]" Class="mt-2" /> @L["ResourcePermissionPermissions"] -
@foreach (var permission in CreateEntity.Permissions) @@ -134,8 +134,8 @@ @L["ResourcePermissionPermissions"] -
@foreach (var permission in EditEntity.Permissions)