radzenhq / radzen-blazor

Radzen Blazor is a set of 90+ free native Blazor UI components packed with DataGrid, Scheduler, Charts and robust theming including Material design and FluentUI.
https://www.radzen.com
MIT License
3.52k stars 785 forks source link

Filtering causes Unhandled exception #459

Closed Grandizer closed 2 years ago

Grandizer commented 2 years ago

Describe the bug We have been using your components for a while and enjoy them. I cannot say that I have specifically used the filter in quite a while, but we have implemented it on list boxes and grids and such. It all worked great. Now filtering anywhere seems to be broken, no matter what the component.

To Reproduce

<RadzenListBox AllowFiltering="true"
  FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
  @bind-Value=@SelectedContributorIds
  Multiple="true"
  Data=@AllContributors
  TextProperty="Value"
  ValueProperty="Key"
  Class="w-75" />

public IEnumerable<int> SelectedContributorIds { get; set; } = new List<int> { };

public List<KeyValuePair<int, string>> AllContributors { get; set; } = new();

AllContributors.Add(new KeyValuePair<int, string>(1, "First Person"));
AllContributors.Add(new KeyValuePair<int, string>(2, "Second Person"));
AllContributors.Add(new KeyValuePair<int, string>(3, "Third Person"));
AllContributors.Add(new KeyValuePair<int, string>(4, "Fourth Person"));
AllContributors.Add(new KeyValuePair<int, string>(5, "Fifth Person"));
AllContributors.Add(new KeyValuePair<int, string>(6, "Sixth Person"));

Expected behavior I expect the filter to work and not throw an error.

Exception

Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]

Unhandled exception rendering component: Object reference not set to an instance of an object.

System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Linq.Dynamic.Core.Parser.KeywordsHelper..ctor(ParsingConfig config)
   at System.Linq.Dynamic.Core.Parser.ExpressionParser..ctor(ParameterExpression[] parameters, String expression, Object[] values, ParsingConfig parsingConfig)
   at System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda(Type delegateType, ParsingConfig parsingConfig, Boolean createParameterCtor, ParameterExpression[] parameters, Type resultType, String expression, Object[] values)
   at System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda(ParsingConfig parsingConfig, Boolean createParameterCtor, ParameterExpression[] parameters, Type resultType, String expression, Object[] values)
   at System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda(ParsingConfig parsingConfig, Boolean createParameterCtor, Type itType, Type resultType, String expression, Object[] values)
   at System.Linq.Dynamic.Core.DynamicQueryableExtensions.Where(IQueryable source, ParsingConfig config, String predicate, Object[] args)
   at System.Linq.Dynamic.Core.DynamicQueryableExtensions.Where(IQueryable source, String predicate, Object[] args)
   at Radzen.DropDownBase`1[[System.Collections.Generic.IEnumerable`1[[System.Int32, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].get_View()
   at Radzen.Blazor.RadzenListBox`1[[System.Collections.Generic.IEnumerable`1[[System.Int32, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].BuildRenderTree(RenderTreeBuilder __builder)
   at Microsoft.AspNetCore.Components.ComponentBase.<.ctor>b__6_0(RenderTreeBuilder builder)
   at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)

I have a DataGrid as well.

<RadzenDataGrid Data="@FilteredMeasurements"
  TItem="MeasurementMarkerViewExt"
  IsLoading="!IsLoaded"
  AllowFiltering="true"
  AllowPaging="true"
  AllowSorting="true"
  FilterMode="FilterMode.Simple"
  FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
  ShowPagingSummary="true"
  EmptyText="There are no records found"
  PageSize="12">

Similar excpetion:

Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100]

Unhandled exception rendering component: Object reference not set to an instance of an object.

System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Linq.Dynamic.Core.Parser.KeywordsHelper..ctor(ParsingConfig config)
   at System.Linq.Dynamic.Core.Parser.ExpressionParser..ctor(ParameterExpression[] parameters, String expression, Object[] values, ParsingConfig parsingConfig)
   at System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda(Type delegateType, ParsingConfig parsingConfig, Boolean createParameterCtor, ParameterExpression[] parameters, Type resultType, String expression, Object[] values)
   at System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda(ParsingConfig parsingConfig, Boolean createParameterCtor, ParameterExpression[] parameters, Type resultType, String expression, Object[] values)
   at System.Linq.Dynamic.Core.DynamicExpressionParser.ParseLambda(ParsingConfig parsingConfig, Boolean createParameterCtor, Type itType, Type resultType, String expression, Object[] values)
   at System.Linq.Dynamic.Core.DynamicQueryableExtensions.Where(IQueryable source, ParsingConfig config, String predicate, Object[] args)
   at System.Linq.Dynamic.Core.DynamicQueryableExtensions.Where[MeasurementMarkerViewExt](IQueryable`1 source, ParsingConfig config, String predicate, Object[] args)
   at System.Linq.Dynamic.Core.DynamicQueryableExtensions.Where[MeasurementMarkerViewExt](IQueryable`1 source, String predicate, Object[] args)
   at Radzen.QueryableExtension.Where[MeasurementMarkerViewExt](IQueryable`1 source, IEnumerable`1 columns)
   at Radzen.Blazor.RadzenDataGrid`1[[Lubrizol.SWIFT.Client.Pages.Admin.MeasurementMarkerViewExt, Lubrizol.SWIFT.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].get_View()
   at Radzen.PagedDataBoundComponent`1[[Lubrizol.SWIFT.Client.Pages.Admin.MeasurementMarkerViewExt, Lubrizol.SWIFT.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].get_PagedView()
   at Radzen.Blazor.RadzenDataGrid`1[[Lubrizol.SWIFT.Client.Pages.Admin.MeasurementMarkerViewExt, Lubrizol.SWIFT.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].DrawGroupOrDataRows(RenderTreeBuilder builder, IList`1 visibleColumns)
   at Radzen.Blazor.RadzenDataGrid`1.<>c__DisplayClass8_0[[Lubrizol.SWIFT.Client.Pages.Admin.MeasurementMarkerViewExt, Lubrizol.SWIFT.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].<DrawRows>b__0(RenderTreeBuilder builder)
   at Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(Int32 sequence, RenderFragment fragment)
   at Radzen.Blazor.RadzenDataGrid`1[[Lubrizol.SWIFT.Client.Pages.Admin.MeasurementMarkerViewExt, Lubrizol.SWIFT.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]].BuildRenderTree(RenderTreeBuilder __builder)
   at Microsoft.AspNetCore.Components.ComponentBase.<.ctor>b__6_0(RenderTreeBuilder builder)
   at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)

Desktop (please complete the following information):

Additional context This seems to be globally throughout the project. The error is not pointing me in any particular direction. Any suggestions?

enchev commented 2 years ago

Works normally on my end using our demo project: image image