Skip to content

Filters not working with dates #44

Description

@TDK1964

I am using the .NET Core 2 example and added a new property to the the EmployeeModel

public DateTime? HireDate { get; set; }

If I then try and filter on this column and select "is null" as the filter criteria I get this error.

System.FormatException: String '' was not recognized as a valid DateTime. at System.DateTimeParse.Parse(ReadOnlySpan1 s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
at System.DateTime.Parse(String s, IFormatProvider provider)
at KendoGridBinder.Containers.FilterObject.GetExpression[TEntity](String field, String op, String param, String ignoreCase)
at KendoGridBinder.Containers.FilterObject.GetExpression1TEntity
at KendoGridBinder.KendoGrid2.GetFiltering(FilterObjectWrapper filter) at KendoGridBinder.KendoGrid2.ApplyFiltering(IQueryable1 query, FilterObjectWrapper filter) at KendoGridBinder.KendoGrid2..ctor(KendoGridBaseRequest request, IQueryable1 query, Dictionary2 mappings, Func2 conversion, IEnumerable1 includes)
at KendoGridBinder.KendoGrid1..ctor(KendoGridBaseRequest request, IEnumerable1 source, Dictionary2 mappings, Func2 conversion, IEnumerable1 includes) at OfficeManager.Features.Project.ProjectController.Project_Read2(KendoGridMvcRequest request) in C:\Data\Repos\TDK1964\OfficeManager\OfficeManager\Features\Project\ProjectController.cs:line 96 at lambda_method(Closure , Object , Object[] ) at Microsoft.Extensions.Internal.ObjectMethodExecutor.Execute(Object target, Object[] parameters) at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.SyncActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeActionMethodAsync() at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeNextActionFilterAsync() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync() --- End of stack trace from previous location where exception was thrown --- at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker) at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at StackExchange.Profiling.MiniProfilerMiddleware.Invoke(HttpContext context) in C:\projects\dotnet\src\MiniProfiler.AspNetCore\MiniProfilerMiddleware.cs:line 107 at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.MigrationsEndPointMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore.DatabaseErrorPageMiddleware.Invoke(HttpContext httpContext) at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

`
var url = '@Url.Action("Grid")';

var dataSource = {
    serverPaging: true,
    serverSorting: true,
    serverFiltering: true,
    pageSize: 10,
    transport: {
        read: {
            type: 'post',
            dataType: 'json',
            url: url
        }
    },
    schema: {
        data: 'Data',
        total: 'Total',
        model: {
            id: 'EmployeeId',
            fields: {
                FirstName: { type: 'string' },
                LastName: { type: 'string' },
                Email: { type: 'string' },
                HireDate: { type: 'date' }
            }
        }
    }
};

$('#grid').kendoGrid({
    dataSource: dataSource,
    height: 410,
    columns: [
        { field: 'FirstName', title: 'First Name' },
        { field: 'LastName', title: 'Last Name' },
        { field: 'Email', title: 'E-Mail' },
        { field: 'HireDate', title: 'Hire Date' }
    ],
    filterable: true,
    sortable: true,
    pageable: true
});`

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions