How to filter date column as datetimerange in SfGrid Query

Hi great Support.

Here is my workign odata query;


I am filtering date column outside control;


I have this query object;


And i am trying to find how should i type equality operator like this;


None of them are working.

Can you hepl me to find ?
Thanks



3 Replies 1 reply marked as answer

RN Rahul Narayanasamy Syncfusion Team September 3, 2020 12:47 PM UTC

Hi Blazor, 

Greetings from Syncfusion. 

Query: How to filter date column as datetimerange in SfGrid Query 

We have validated your query and you want to filter date column values in Grid based on the selection of the dates in SfDateRangePicker. Here, we have prepared a sample based on your requirement. We have created filter predicate and send that filter predicate in Grid Query property to filter the records. Find the below code snippets. 

 
<SfDateRangePicker Placeholder="Choose a Range" Min='@MinDate' Max='@MaxDate' Width="500"> 
    <DateRangePickerEvents ValueChange="ValueChangeHandler"></DateRangePickerEvents> 
</SfDateRangePicker> 
 
<button @onclick="ClearFilter"> Clear Filtering</button> 
 
<SfGrid TValue="Order" AllowPaging="true" Query="GridQuery" AllowFiltering="true"> 
    <SfDataManager Url="https://services.odata.org/V4/Northwind/Northwind.svc/Orders/" Adaptor="Adaptors.ODataV4Adaptor"></SfDataManager> 
    <GridColumns> 
        . . . 
    </GridColumns> 
</SfGrid> 
 
@code{ 
    public DateTime MinDate { get; set; } = new DateTime(1996, 07, 04); 
    public DateTime MaxDate { get; set; } = new DateTime(1998, 05, 05); 
    public Query GridQuery { get; set; } 
    . . . 
    public void ValueChangeHandler(RangeEventArgs args) 
    { 
        GridQuery = new Query(); 
        var ColPre = new WhereFilter(); 
        List<WhereFilter> Predicate = new List<WhereFilter>(); 
        Predicate.Add(new WhereFilter() 
        { 
            Field = "OrderDate", 
            value = args.StartDate, 
            Operator = "greaterthanorequal", 
            IgnoreCase = true 
        }); 
        Predicate.Add(new WhereFilter() 
        { 
            Field = "OrderDate", 
            value = args.EndDate, 
            Operator = "lessthanorequal", 
            IgnoreCase = true 
        }); 
        ColPre = WhereFilter.And(Predicate); 
        GridQuery = new Query().Where(ColPre); 
    } 
    public void ClearFilter() 
    { 
        GridQuery = new Query(); 
    } 
} 


Please let us know if you have any concerns. 

Regards, 
Rahul 


Marked as answer

BL Blazor September 3, 2020 08:31 PM UTC

Perfectly working, Rahul.

Thanks.


RN Rahul Narayanasamy Syncfusion Team September 4, 2020 04:52 AM UTC

Hi Blazor, 
 
Thanks for the update. 
 
We are happy to hear that the provided solution was helpful to achieve your requirement. 
 
Please get back to us if you need further assistance. 
 
Regards, 
Rahul 


Loader.
Up arrow icon