Skip to content

Conversation

vnbaaij
Copy link
Collaborator

@vnbaaij vnbaaij commented Jun 17, 2025

This PR adds an IsFixed parameter to the FluentDataGrid component that allows developers to optimize performance when working with static datasets that are not expected to change during the grid's lifetime. Fixes #3911. Fixes #3920.

Changes

New Parameter

  • Added IsFixed boolean parameter with default value false to maintain backward compatibility
  • When IsFixed=true, the grid optimizes refresh behavior for static datasets
  • When IsFixed=false (default), maintains existing behavior from v4.11.9

Performance Optimizations

When IsFixed=true:

  • Skips hash computation for Items collection change detection
  • Reduces automatic RefreshItems calls to only forced or initial requests
  • Maintains full functionality for pagination, explicit refreshes, and data source changes

Usage Example

<!-- Default behavior (existing functionality) -->
<FluentDataGrid Items="@dynamicData.AsQueryable()">
    <PropertyColumn Property="@(x => x.Name)" />
</FluentDataGrid>

<!-- Optimized for static datasets -->
<FluentDataGrid Items="@staticData.AsQueryable()" IsFixed="true">
    <PropertyColumn Property="@(x => x.Name)" />
</FluentDataGrid>

Implementation Details

  • Modified OnParametersSetAsync() to respect the IsFixed parameter in change detection logic
  • Enhanced RefreshDataCoreAsync() to be more conservative about automatic refreshes when IsFixed=true
  • Added comprehensive test coverage including edge cases and explicit refresh scenarios

Backward Compatibility

  • Default value of false ensures existing code continues to work unchanged
  • All existing functionality (pagination, sorting, explicit refreshes) remains fully functional
  • No breaking changes to existing APIs

This implementation replaces the automatic refresh logic that was added in v4.12.0 with more controlled behavior when developers know their dataset is static, providing significant performance benefits for such scenarios.

@vnbaaij vnbaaij added this to the v4.12.1 milestone Jun 17, 2025
@vnbaaij vnbaaij requested a review from dvoituron as a code owner June 17, 2025 07:25
@vnbaaij vnbaaij changed the title Re-implement DataGrid IsFixed [DataGrid] Add IsFixed parameter Jun 17, 2025
@vnbaaij vnbaaij enabled auto-merge (squash) June 17, 2025 07:26
@github-actions
Copy link

github-actions bot commented Jun 17, 2025

✅ All tests passed successfully

Details on your Workflow / Core Tests page.

@github-actions
Copy link

github-actions bot commented Jun 17, 2025

Summary - Unit Tests Code Coverage

Summary
Generated on: 6/17/2025 - 7:36:33 AM
Coverage date: 6/17/2025 - 7:36:24 AM
Parser: Cobertura
Assemblies: 1
Classes: 254
Files: 364
Line coverage: 60.5% (5986 of 9881)
Covered lines: 5986
Uncovered lines: 3895
Coverable lines: 9881
Total lines: 32709
Branch coverage: 52.7% (3007 of 5697)
Covered branches: 3007
Total branches: 5697
Method coverage: Feature is only available for sponsors
Tag: 3788_15700997488

Coverage

Microsoft.FluentUI.AspNetCore.Components - 60.5%
Name Line Branch
Microsoft.FluentUI.AspNetCore.Components 60.5% 52.7%
Microsoft.FluentUI.AspNetCore.Components.AccordionChangeEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.ActionButton`1 50%
Microsoft.FluentUI.AspNetCore.Components.ActionLink`1 0%
Microsoft.FluentUI.AspNetCore.Components.CalendarExtended 95% 86.6%
Microsoft.FluentUI.AspNetCore.Components.CalendarTitles 87% 76.6%
Microsoft.FluentUI.AspNetCore.Components.CheckboxChangeEventArgs 50%
Microsoft.FluentUI.AspNetCore.Components.ColumnBase`1 25.4% 20.8%
Microsoft.FluentUI.AspNetCore.Components.ColumnKeyGridSort`1 0% 0%
Microsoft.FluentUI.AspNetCore.Components.ColumnOptionsLabels 80%
Microsoft.FluentUI.AspNetCore.Components.ColumnResizeLabels 90.9%
Microsoft.FluentUI.AspNetCore.Components.ColumnResizeOptions`1 0% 0%
Microsoft.FluentUI.AspNetCore.Components.ColumnSortLabels 85.7%
Microsoft.FluentUI.AspNetCore.Components.CommunicationToast 0% 0%
Microsoft.FluentUI.AspNetCore.Components.CommunicationToastContent 0%
Microsoft.FluentUI.AspNetCore.Components.ComponentParameters 16.6% 0%
Microsoft.FluentUI.AspNetCore.Components.Components.DateTime.RangeOfDates 100% 50%
Microsoft.FluentUI.AspNetCore.Components.Components.Tooltip.TooltipGlobalOp
tions
40%
Microsoft.FluentUI.AspNetCore.Components.Components.Tooltip.TooltipOptions 0%
Microsoft.FluentUI.AspNetCore.Components.Components.Tooltip.TooltipService 57.5% 30%
Microsoft.FluentUI.AspNetCore.Components.CountdownTimer 0% 0%
Microsoft.FluentUI.AspNetCore.Components.CustomEmoji 0% 0%
Microsoft.FluentUI.AspNetCore.Components.CustomIcon 0%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.AsyncQuery
ExecutorSupplier
38.4% 43.7%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.ColumnsCol
lectedNotifier`1
87.5% 50%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.Defer 100%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.DisplayAtt
ributeExtensions
66.6% 50%
Microsoft.FluentUI.AspNetCore.Components.DataGrid.Infrastructure.InternalGr
idContext`1
90.9% 100%
Microsoft.FluentUI.AspNetCore.Components.DataGridCellFocusEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.DataGridRowFocusEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.DialogEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.DialogHelper 0%
Microsoft.FluentUI.AspNetCore.Components.DialogInstance 92.3% 75%
Microsoft.FluentUI.AspNetCore.Components.DialogParameters 90.9% 100%
Microsoft.FluentUI.AspNetCore.Components.DialogParameters`1 100%
Microsoft.FluentUI.AspNetCore.Components.DialogReference 36.3% 37.5%
Microsoft.FluentUI.AspNetCore.Components.DialogResult 0% 0%
Microsoft.FluentUI.AspNetCore.Components.DialogService 4.1% 2.6%
Microsoft.FluentUI.AspNetCore.Components.Emoji 0% 0%
Microsoft.FluentUI.AspNetCore.Components.EmojiCompress 0% 0%
Microsoft.FluentUI.AspNetCore.Components.EmojiExtensions 0% 0%
Microsoft.FluentUI.AspNetCore.Components.EmojiInfo 0%
Microsoft.FluentUI.AspNetCore.Components.Extensions.AdditionalAttributesExt
ensions
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Extensions.BooleanExtensions 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Extensions.DateTimeExtensions 81.2% 85%
Microsoft.FluentUI.AspNetCore.Components.Extensions.EnumExtensions 70.5% 59%
Microsoft.FluentUI.AspNetCore.Components.Extensions.FluentInputExtensions 25.9% 16.6%
Microsoft.FluentUI.AspNetCore.Components.Extensions.UrlFormatterExtensions 100% 75%
Microsoft.FluentUI.AspNetCore.Components.FluentAccessibilityStatus 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentAccordion 59.2% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentAccordionItem 78.5% 35.7%
Microsoft.FluentUI.AspNetCore.Components.FluentAnchor 90% 67.8%
Microsoft.FluentUI.AspNetCore.Components.FluentAnchoredRegion 87.7% 60%
Microsoft.FluentUI.AspNetCore.Components.FluentAppBar 65% 38.8%
Microsoft.FluentUI.AspNetCore.Components.FluentAppBarItem 85.2% 60%
Microsoft.FluentUI.AspNetCore.Components.FluentAutocomplete`1 87.5% 76%
Microsoft.FluentUI.AspNetCore.Components.FluentBadge 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentBodyContent 100%
Microsoft.FluentUI.AspNetCore.Components.FluentBreadcrumb 100%
Microsoft.FluentUI.AspNetCore.Components.FluentBreadcrumbItem 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentButton 84.3% 64.5%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendar 83.4% 78.3%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarBase 93.7% 81.2%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarDay 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarMonth 92.3% 64.2%
Microsoft.FluentUI.AspNetCore.Components.FluentCalendarYear 84.6% 58.3%
Microsoft.FluentUI.AspNetCore.Components.FluentCard 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCheckbox 91.1% 87%
Microsoft.FluentUI.AspNetCore.Components.FluentCollapsibleRegion 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentCombobox`1 69% 60%
Microsoft.FluentUI.AspNetCore.Components.FluentComponentBase 90.9% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentCounterBadge 92.3% 84.8%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGrid`1 58.9% 47.7%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridCell`1 79.5% 70%
Microsoft.FluentUI.AspNetCore.Components.FluentDataGridRow`1 57.1% 37.5%
Microsoft.FluentUI.AspNetCore.Components.FluentDatePicker 85.4% 56.2%
Microsoft.FluentUI.AspNetCore.Components.FluentDesignSystemProvider 100% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentDesignTheme 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentDialog 58.9% 62.7%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogBody 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogFooter 66.6% 44.1%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogHeader 85.1% 78.1%
Microsoft.FluentUI.AspNetCore.Components.FluentDialogProvider 60.2% 52.1%
Microsoft.FluentUI.AspNetCore.Components.FluentDivider 86.9% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentDragContainer`1 71.4%
Microsoft.FluentUI.AspNetCore.Components.FluentDragEventArgs`1 0%
Microsoft.FluentUI.AspNetCore.Components.FluentDropZone`1 21.1% 4.3%
Microsoft.FluentUI.AspNetCore.Components.FluentEditForm 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentEmoji`1 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentFlipper 100%
Microsoft.FluentUI.AspNetCore.Components.FluentFooter 100%
Microsoft.FluentUI.AspNetCore.Components.FluentGrid 72.2% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentGridItem 87.5% 82.5%
Microsoft.FluentUI.AspNetCore.Components.FluentHeader 100%
Microsoft.FluentUI.AspNetCore.Components.FluentHighlighter 80% 20%
Microsoft.FluentUI.AspNetCore.Components.FluentHorizontalScroll 60.6% 20%
Microsoft.FluentUI.AspNetCore.Components.FluentIcon`1 88.3% 81.2%
Microsoft.FluentUI.AspNetCore.Components.FluentInputBase`1 69% 61.2%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFile 89.5% 79.6%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFileBuffer 100%
Microsoft.FluentUI.AspNetCore.Components.FluentInputFileEventArgs 92.3%
Microsoft.FluentUI.AspNetCore.Components.FluentInputLabel 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCode 90.3% 90%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCodeEventArgs 100% 75%
Microsoft.FluentUI.AspNetCore.Components.FluentKeyCodeProvider 40% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentLabel 98% 88.8%
Microsoft.FluentUI.AspNetCore.Components.FluentLayout 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentListbox`1 94.4% 83.3%
Microsoft.FluentUI.AspNetCore.Components.FluentMain 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMainLayout 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMenu 34.6% 48.2%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuButton 65% 7.1%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuItem 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentMenuProvider 95.2% 83.3%
Microsoft.FluentUI.AspNetCore.Components.FluentMessageBar 50.4% 24.1%
Microsoft.FluentUI.AspNetCore.Components.FluentMessageBarProvider 70.4% 59%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitter 81.7% 66.6%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterPane 97.1% 91%
Microsoft.FluentUI.AspNetCore.Components.FluentMultiSplitterResizeEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentNavBase 55.1% 16.6%
Microsoft.FluentUI.AspNetCore.Components.FluentNavGroup 62.3% 36.6%
Microsoft.FluentUI.AspNetCore.Components.FluentNavLink 84.6% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentNavMenu 61.1% 33.3%
Microsoft.FluentUI.AspNetCore.Components.FluentNavMenuGroup 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentNavMenuItemBase 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentNavMenuLink 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentNavMenuTree 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentNumberField`1 63.8% 55.1%
Microsoft.FluentUI.AspNetCore.Components.FluentOption`1 79.4% 61.5%
Microsoft.FluentUI.AspNetCore.Components.FluentOverflow 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentOverflowItem 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentOverlay 74% 62%
Microsoft.FluentUI.AspNetCore.Components.FluentPageScript 100%
Microsoft.FluentUI.AspNetCore.Components.FluentPaginator 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentPersona 100% 78.1%
Microsoft.FluentUI.AspNetCore.Components.FluentPopover 78.4% 65.9%
Microsoft.FluentUI.AspNetCore.Components.FluentPresenceBadge 60.9% 29.1%
Microsoft.FluentUI.AspNetCore.Components.FluentProfileMenu 100% 100%
Microsoft.FluentUI.AspNetCore.Components.FluentProgress 81.2% 68.1%
Microsoft.FluentUI.AspNetCore.Components.FluentProgressRing 97.6% 92.8%
Microsoft.FluentUI.AspNetCore.Components.FluentPullToRefresh 94% 89.2%
Microsoft.FluentUI.AspNetCore.Components.FluentRadio`1 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentRadioContext 70% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentRadioGroup`1 77.7% 16.6%
Microsoft.FluentUI.AspNetCore.Components.FluentRating 76.4% 78.2%
Microsoft.FluentUI.AspNetCore.Components.FluentSearch 88.5% 83.3%
Microsoft.FluentUI.AspNetCore.Components.FluentSelect`1 96.4% 90%
Microsoft.FluentUI.AspNetCore.Components.FluentSkeleton 40.9% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentSlider`1 84.7% 68.4%
Microsoft.FluentUI.AspNetCore.Components.FluentSliderLabel`1 65.8% 33.3%
Microsoft.FluentUI.AspNetCore.Components.FluentSortableList`1 86.9% 59%
Microsoft.FluentUI.AspNetCore.Components.FluentSortableListEventArgs 83.3%
Microsoft.FluentUI.AspNetCore.Components.FluentSpacer 100% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentSplashScreen 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentSplitter 70.7% 40%
Microsoft.FluentUI.AspNetCore.Components.FluentStack 82.9% 33.3%
Microsoft.FluentUI.AspNetCore.Components.FluentSwitch 82.6% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentTab 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentTabs 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentTextArea 85%
Microsoft.FluentUI.AspNetCore.Components.FluentTextField 88.8% 60%
Microsoft.FluentUI.AspNetCore.Components.FluentTimePicker 100% 90%
Microsoft.FluentUI.AspNetCore.Components.FluentToast 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentToastProvider 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentToolbar 68.9% 50%
Microsoft.FluentUI.AspNetCore.Components.FluentTooltip 68.4% 73.8%
Microsoft.FluentUI.AspNetCore.Components.FluentTooltipProvider 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentTreeItem 89.3% 77.7%
Microsoft.FluentUI.AspNetCore.Components.FluentTreeView 79.7% 65.6%
Microsoft.FluentUI.AspNetCore.Components.FluentValidationMessage`1 0% 0%
Microsoft.FluentUI.AspNetCore.Components.FluentValidationSummary 100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.FluentWizard 95.2% 85.8%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStep 95.8% 88.3%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStepArgs 100%
Microsoft.FluentUI.AspNetCore.Components.FluentWizardStepChangeEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.GlobalState 31.8% 50%
Microsoft.FluentUI.AspNetCore.Components.GridItemsProviderRequest`1 54.5% 20.8%
Microsoft.FluentUI.AspNetCore.Components.GridItemsProviderResult 100%
Microsoft.FluentUI.AspNetCore.Components.GridItemsProviderResult`1 100%
Microsoft.FluentUI.AspNetCore.Components.GridSort`1 35.1% 25.9%
Microsoft.FluentUI.AspNetCore.Components.HorizontalScrollEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.Icon 83.7% 91.1%
Microsoft.FluentUI.AspNetCore.Components.IconFromImage 100%
Microsoft.FluentUI.AspNetCore.Components.IconInfo 100%
Microsoft.FluentUI.AspNetCore.Components.IconsExtensions 0% 0%
Microsoft.FluentUI.AspNetCore.Components.Identifier 66.6% 62.5%
Microsoft.FluentUI.AspNetCore.Components.IdentifierContext 66.6% 41.6%
Microsoft.FluentUI.AspNetCore.Components.IDialogService 0%
Microsoft.FluentUI.AspNetCore.Components.INavMenuItemsOwner 0%
Microsoft.FluentUI.AspNetCore.Components.Infrastructure.EventCallbackSubscr
ibable`1
100% 100%
Microsoft.FluentUI.AspNetCore.Components.Infrastructure.EventCallbackSubscr
iber`1
100% 87.5%
Microsoft.FluentUI.AspNetCore.Components.InputHelpers`1 62.1% 48.6%
Microsoft.FluentUI.AspNetCore.Components.InternalAppBarContext 100% 100%
Microsoft.FluentUI.AspNetCore.Components.InternalDialogContext 80%
Microsoft.FluentUI.AspNetCore.Components.InternalListContext`1 80% 66.6%
Microsoft.FluentUI.AspNetCore.Components.InternalToastContext 0%
Microsoft.FluentUI.AspNetCore.Components.KeyCodeService 60.3% 28.5%
Microsoft.FluentUI.AspNetCore.Components.KeyDown 0% 0%
Microsoft.FluentUI.AspNetCore.Components.LibraryConfiguration 88.8% 50%
Microsoft.FluentUI.AspNetCore.Components.ListComponentBase`1 62.3% 59.3%
Microsoft.FluentUI.AspNetCore.Components.LoadedEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.LuminanceChangedEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.MenuChangeEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.MenuService 41.6% 0%
Microsoft.FluentUI.AspNetCore.Components.Message 50% 0%
Microsoft.FluentUI.AspNetCore.Components.MessageBox 50% 0%
Microsoft.FluentUI.AspNetCore.Components.MessageBoxContent 0%
Microsoft.FluentUI.AspNetCore.Components.MessageOptions 76.9%
Microsoft.FluentUI.AspNetCore.Components.MessageService 33% 26.9%
Microsoft.FluentUI.AspNetCore.Components.NavMenuActionArgs 0% 0%
Microsoft.FluentUI.AspNetCore.Components.OfficeColorUtilities 0%
Microsoft.FluentUI.AspNetCore.Components.Option`1 0%
Microsoft.FluentUI.AspNetCore.Components.OptionsSearchEventArgs`1 100%
Microsoft.FluentUI.AspNetCore.Components.OverflowItem 100%
Microsoft.FluentUI.AspNetCore.Components.PaginationState 59% 43.7%
Microsoft.FluentUI.AspNetCore.Components.ProgressFileDetails 100%
Microsoft.FluentUI.AspNetCore.Components.ProgressToast 0% 0%
Microsoft.FluentUI.AspNetCore.Components.ProgressToastContent 0%
Microsoft.FluentUI.AspNetCore.Components.PropertyColumn`2 80.4% 55%
Microsoft.FluentUI.AspNetCore.Components.RenderFragmentDialog 100%
Microsoft.FluentUI.AspNetCore.Components.Resources.TimeAgoResource 76.1% 100%
Microsoft.FluentUI.AspNetCore.Components.SelectAllTemplateArgs 100%
Microsoft.FluentUI.AspNetCore.Components.SelectColumn`1 87% 81.6%
Microsoft.FluentUI.AspNetCore.Components.SelectDatesHoverEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.ServiceCollectionExtensions 59.2% 66.6%
Microsoft.FluentUI.AspNetCore.Components.SortedProperty 0%
Microsoft.FluentUI.AspNetCore.Components.SplashScreenContent 0% 0%
Microsoft.FluentUI.AspNetCore.Components.SplitterCollapsedEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.SplitterResizedEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.StandardLuminanceExtensions 0% 0%
Microsoft.FluentUI.AspNetCore.Components.StaticAssetServiceConfiguration 0% 0%
Microsoft.FluentUI.AspNetCore.Components.TabChangeEventArgs 0%
Microsoft.FluentUI.AspNetCore.Components.TemplateColumn`1 83.3% 0%
Microsoft.FluentUI.AspNetCore.Components.TimeAgoOptions 92.3%
Microsoft.FluentUI.AspNetCore.Components.ToastInstance 0% 0%
Microsoft.FluentUI.AspNetCore.Components.ToastParameters 0%
Microsoft.FluentUI.AspNetCore.Components.ToastParameters`1 0%
Microsoft.FluentUI.AspNetCore.Components.ToastResult 0% 0%
Microsoft.FluentUI.AspNetCore.Components.ToastService 0% 0%
Microsoft.FluentUI.AspNetCore.Components.TreeChangeEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.TreeViewItem 100%
Microsoft.FluentUI.AspNetCore.Components.TreeViewItemExpandedEventArgs 100%
Microsoft.FluentUI.AspNetCore.Components.UploadedFileDetails 0%
Microsoft.FluentUI.AspNetCore.Components.Utilities.CssBuilder 100% 100%
Microsoft.FluentUI.AspNetCore.Components.Utilities.InlineStyleBuilder 96.4% 87.5%
Microsoft.FluentUI.AspNetCore.Components.Utilities.InternalDebounce.Debounc
eAction
52.3% 18.7%
Microsoft.FluentUI.AspNetCore.Components.Utilities.InternalDebounce.Debounc
eTask
0% 0%
Microsoft.FluentUI.AspNetCore.Components.Utilities.InternalDebounce.Dispatc
herTimerExtensions
82.9% 68.7%
Microsoft.FluentUI.AspNetCore.Components.Utilities.JSModule 0% 0%
Microsoft.FluentUI.AspNetCore.Components.Utilities.RangeOf`1 96.7% 94.4%
Microsoft.FluentUI.AspNetCore.Components.Utilities.Splitter 82.8% 81.8%
Microsoft.FluentUI.AspNetCore.Components.Utilities.StyleBuilder 100% 91.6%
Microsoft.FluentUI.AspNetCore.Components.ZIndex 100%
System.Text.RegularExpressions.Generated 76.6% 51.4%

@vnbaaij vnbaaij merged commit eb0b32a into dev Jun 17, 2025
5 checks passed
@vnbaaij vnbaaij deleted the users/vnbaaij/datagrid-isfixed branch June 17, 2025 07:31
@Paxol
Copy link

Paxol commented Jul 11, 2025

Hello, is there any ETA for when this PR will be merged into a public version of the NuGet package (even a prerelease)?
I’m currently experiencing an issue with version 4.12.0 and Blazor WASM when using the OData adapter. The ComputeItemsHash function is called with the Items parameter and attempts to enumerate the query synchronously.
I believe this pull request would resolve that problem.

@vnbaaij
Copy link
Collaborator Author

vnbaaij commented Jul 11, 2025

There are pre-release packages available already. See https://github.com/microsoft/fluentui-blazor/blob/dev/docs/using-latest-daily.md

v4.12.1 final will probably be available next week

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: Add IsFixed parameter to DataGrid 4.12.0 Bug on FluentDataGrid

3 participants