Hi everyone,
I would like to change the language in the advanced filters of a Datagrid,
Can I just set a language property, or do I need to copy the code of the filter and use it in a filterTemplate?
thanks a lot
Hi everyone,
I would like to change the language in the advanced filters of a Datagrid,
Can I just set a language property, or do I need to copy the code of the filter and use it in a filterTemplate?
thanks a lot
Hi @Pierre_Chambon,
There are properties which you can set (all ending with Text) that allow you to customize the messages:
<RadzenDataGrid EqualsText="Is equal to" ContainsText="Contains"
DoesNotContainText=".." StartsWithText=".." EndsWithText=".."
NotEqualsText=".." LessThanText=".." LessThanOrEqualsText=".."
GreaterThanText=".." GreaterThanOrEqualsText=".."
IsNullText=".." IsNotNullText=".." ApplyFilterText=".."
ClearFilterText=".."
/>
Is it possible to create a wrapper/template for the datagrid to avoid repeating all those properties in each datagrid?
Thanks
Yes, itβs possible. Just define the DataGrid with desired settings in a razor component and reuse it where needed.
I have just pushed a new feature that should make things easier once released.
using Radzen;
using Radzen.Blazor;
var builder = WebApplication.CreateBuilder(args);
var activator = new RadzenComponentActivator();
// Override any RadzenDataGrid with MyDataGrid which has some property defaults set.
activator.Override(typeof(RadzenDataGrid<>), typeof(MyDataGrid<>));
builder.Services.AddSingleton<IComponentActivator>(activator);
class MyDataGrid<T> : Radzen.Blazor.RadzenDataGrid<T>
{
public MyDataGrid()
{
EqualsText = "Is equal to";
}
}
What happens under the hood is that all instances of <RadzenDataGrid ...> are now MyDataGrid thus having the property values set in the constructor.
This is exactly what I was looking for ![]()
I ended up trying to override the RadzenDataGrid,
public class CustomRadzenDataGrid<T> : RadzenDataGrid<T>
{
[Parameter] public IStringLocalizer<App>? Loc { get; set; }
public CustomRadzenDataGrid() : base()
{
base.AllowSorting = true;
base.AllowFiltering = true;
base.FilterCaseSensitivity = FilterCaseSensitivity.CaseInsensitive;
base.Style = "max-height: 90vh; margin-bottom: 2vh;";
}
protected override void OnParametersSet()
{
base.OnParametersSet();
if (Loc == null) return;
base.AndOperatorText= Loc["And"];
base.OrOperatorText= Loc["Or"];
//...
base.FilterText= Loc["Filter"];
}
}
Which seems to be working, although I haven't tested it much.
Anyway I'll switch to your activator class when it's available, for sure.
Thanks for the great components and the awesome feedback! ![]()
Hi everyone,
the solution to override the RadzenDataGrid works fine except i can't find the text property to replace "Custom" by something else in the filter dropdownlist
Regards
It will be possible in our next update before the end of the week:
I used mentioned solution for customization of default parameter values on all my instances of RadzenDataGrid. It works great for localization, but I also used it to preset some parameters that I want to be used only on master pages - e.g. AllowColumnPicking = true.
However the activator is used globally also when I use component RadzenDropDownDataGrid. Is there a way how to preset RadzenDataGrid inside dropdown? Because not all parameters are proxied from RadzenDataGrid to RadzenDropDownDataGrid.