A Blazor WASM .NET 8 proof-of-concept project I recently worked needed a data grid.
- MudBlazor, at the time, it didn’t support .NET 8 WASM. (It might now, I’m not sure).
- Blazorise – looks good, but I didn’t want the client to pay, because it’s a POC.
- QuickGrid – used this for the initial version. Easy to use, but needs CSS skills to customize.
- FluentDataGrid – much prettier, and easier to use than the QuickGrid. Almost a drop-in replacement for the QuickGrid.
QuickGrid
I initially started out with QuickGrid. After tweaking the CSS to get the column widths right, the result was this:
I would have liked the text to overflow … and show the full text on hover. I played around with the CSS and it kinda worked, but it wasn’t great.
FluentDataGrid
Later I found the FluentDataGrid, which is part of FluentUI Blazor. It already has the overflow with tooltip:
Dialog
You would think that Blazor would have a built-in easy way to popup a confirm message to the user, but it doesn’t come with any. The only way I could find was to use an old-fashioned javascript confirm:
bool confirmed = await JsRuntime.InvokeAsync<bool>("confirm", $"Are you sure you want to resend {loggedEvent.MessageBody}?"); if (confirmed) { // do stuff
Which is pretty basic.
FluentUI Blazor’s dialog is a bit prettier:
var dialog = await _dialogService.ShowConfirmationAsync($"Are you sure you want to resend {loggedEvent.EventType} for {loggedEvent.Id}?"); var result = await dialog.Result; if (!result.Cancelled) { // do stuff
Notifications
FluentUI Blazor also has a ToastService for easily showing a pop-up (like how toast pops-up when it’s ready) to notify users.
_toastService.ShowSuccess($"{loggedEvent.Id} was resent.");