MeshWeaver.Blazor.Radzen
3.0.0-preview1
dotnet add package MeshWeaver.Blazor.Radzen --version 3.0.0-preview1
NuGet\Install-Package MeshWeaver.Blazor.Radzen -Version 3.0.0-preview1
<PackageReference Include="MeshWeaver.Blazor.Radzen" Version="3.0.0-preview1" />
<PackageVersion Include="MeshWeaver.Blazor.Radzen" Version="3.0.0-preview1" />
<PackageReference Include="MeshWeaver.Blazor.Radzen" />
paket add MeshWeaver.Blazor.Radzen --version 3.0.0-preview1
#r "nuget: MeshWeaver.Blazor.Radzen, 3.0.0-preview1"
#:package MeshWeaver.Blazor.Radzen@3.0.0-preview1
#addin nuget:?package=MeshWeaver.Blazor.Radzen&version=3.0.0-preview1&prerelease
#tool nuget:?package=MeshWeaver.Blazor.Radzen&version=3.0.0-preview1&prerelease
MeshWeaver.Blazor.Radzen
A Radzen Blazor DataGrid adapter for MeshWeaver's GridModel, providing a fully open-source (MIT licensed) grid solution.
Overview
This project provides a Radzen DataGrid component that consumes the same GridControl and GridOptions models used by the previous AgGrid adapter. Radzen Blazor is completely free and open source under the MIT license.
Features
- Pure .NET/Blazor: Minimal JavaScript, fully managed code
- Reuses GridModel: Same
GridOptions,ColDef, andGridControldefinitions - Open Source: MIT licensed, completely free with no restrictions
- Responsive Design: Built-in responsive layout support
- Column Features: Sorting, filtering, resizing, hiding
- Pagination: Built-in paging support
- Theming: Supports Radzen themes including dark mode
Installation
- Add the project reference to your Blazor application:
<ProjectReference Include="..\MeshWeaver.Blazor.Radzen\MeshWeaver.Blazor.Radzen.csproj" />
- Configure Radzen services in your
Program.csor startup configuration:
// Add Radzen services
builder.Services.AddRadzenServices();
- Register the Radzen DataGrid view in your MessageHub configuration:
config.AddRadzenDataGrid();
- Add Radzen CSS to your
App.razoror layout:
<link rel="stylesheet" href="_content/Radzen.Blazor/css/material-base.css">
Or for dark theme:
<link rel="stylesheet" href="_content/Radzen.Blazor/css/material-dark-base.css">
Service Configuration
The AddRadzenServices() extension method configures:
- Radzen component services (DialogService, NotificationService, TooltipService, ContextMenuService)
Usage
Use the same GridControl and GridOptions as you would with AgGrid:
var gridControl = new GridControl(
new GridOptions
{
ColumnDefs = new[]
{
new ColDef { Field = "name", HeaderName = "Name", Sortable = true },
new ColDef { Field = "age", HeaderName = "Age", Sortable = true, Filter = true },
new ColDef { Field = "email", HeaderName = "Email" }
},
RowData = new[]
{
new { name = "John", age = 30, email = "john@example.com" },
new { name = "Jane", age = 25, email = "jane@example.com" }
}
}
);
GridOptions Support Matrix
| Feature | AgGrid | Radzen | Notes |
|---|---|---|---|
| Columns | |||
| ColumnDefs | ✅ | ✅ | Fully supported |
| RowData | ✅ | ✅ | Fully supported |
| DefaultColDef | ✅ | ⚠️ | Partial - used for defaults |
| Field | ✅ | ✅ | Fully supported |
| HeaderName | ✅ | ✅ | Fully supported |
| Width/MinWidth/MaxWidth | ✅ | ✅ | Width supported |
| Flex | ✅ | ⚠️ | Mapped to auto width |
| Hide | ✅ | ✅ | Via Visible property |
| Resizable | ✅ | ✅ | Fully supported |
| Sortable | ✅ | ✅ | Fully supported |
| Filter | ✅ | ⚠️ | Simple filter only |
| Pinned | ✅ | ❌ | Not supported |
| Styling | |||
| CellClass | ✅ | ⚠️ | Limited support |
| CellStyle | ✅ | ✅ | Color, background, font-weight |
| HeaderClass | ✅ | ⚠️ | Limited support |
| RowStyle | ✅ | ⚠️ | Partial support |
| RowHeight | ✅ | ⚠️ | Affects page size calculation |
| HeaderHeight | ✅ | ❌ | Not directly supported |
| Formatting | |||
| ValueGetter | ✅ | ❌ | Not supported (JS function) |
| ValueFormatter | ✅ | ⚠️ | Basic numeric formatting only |
| CellRenderer | ✅ | ⚠️ | Use Template instead |
| Grouping & Aggregation | |||
| RowGroup | ✅ | ❌ | Not supported |
| GroupDisplayType | ✅ | ❌ | Not supported |
| AggFunc | ✅ | ❌ | Not supported |
| Pivot | |||
| PivotMode | ✅ | ❌ | Not supported |
| Pivot | ✅ | ❌ | Not supported |
| Tree Data | |||
| TreeData | ✅ | ❌ | Not supported |
| GetDataPath | ✅ | ❌ | Not supported |
| Column Groups | |||
| ColGroupDef | ✅ | ⚠️ | Flattened to columns |
| Other | |||
| Editable | ✅ | ✅ | Supported |
| SideBar | ✅ | ❌ | Not supported |
| DomLayout | ✅ | ⚠️ | autoHeight supported |
Limitations
JavaScript Functions
AgGrid supports JavaScript function strings which are not supported in Radzen adapter. Consider:
- Using simple field binding instead of ValueGetter
- Using Template for custom rendering
- Pre-formatting data on the server
Advanced Features Not Supported
- Grouping: Row grouping, aggregation functions
- Pivot Tables: Pivot mode and pivot columns
- Tree Data: Hierarchical data structures
- Column Pinning: Left/right pinned columns
- Master/Detail: Expandable rows with detail views
Workarounds
Custom Cell Rendering
Use Radzen's Template feature in the component or pre-format data.
Value Formatting
Pre-format data on server:
var rowData = items.Select(item => new
{
name = item.Name,
amount = item.Amount.ToString("C2"),
date = item.Date.ToString("yyyy-MM-dd")
});
Column Groups
Column groups are automatically flattened to individual columns.
Performance Considerations
- Large Datasets: Radzen DataGrid performs well with ~1000-5000 rows. For larger datasets, use server-side paging.
- Custom Templates: Complex templates can impact rendering performance.
- Filtering: Filtering is client-side by default.
Migration from AgGrid
To migrate from AgGrid to Radzen:
- Replace
config.AddAgGrid()withconfig.AddRadzenDataGrid() - Replace
services.AddBlazoriseServices()withservices.AddRadzenServices() - Test grid functionality, especially:
- Custom cell renderers
- Value formatters
- Grouping/aggregation features
- Adjust GridOptions as needed:
- Remove unsupported features
- Pre-format data instead of using JS functions
Theme Support
Radzen provides multiple built-in themes:
- Material (light/dark)
- Standard (light/dark)
- Default (light/dark)
- Fluent (light/dark)
Change theme by referencing different CSS files:
<link rel="stylesheet" href="_content/Radzen.Blazor/css/fluent-base.css">
License
Radzen Blazor is MIT licensed and completely free to use. See Radzen Blazor GitHub for more information.
Dependencies
- MeshWeaver.Blazor - Base BlazorView infrastructure
- MeshWeaver.GridModel - Grid model definitions
- Radzen.Blazor - Radzen Blazor components (MIT licensed)
Related Projects
- MeshWeaver.Layout - Core layout and UI control system
- MeshWeaver.Blazor - Blazor components
- Radzen Blazor - Open source Blazor components
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- MeshWeaver.Blazor (>= 3.0.0-preview1)
- Radzen.Blazor (>= 10.2.3)
- System.Security.Cryptography.Xml (>= 10.0.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0-preview1 | 86 | 4/16/2026 |