In my case, datecolumn in grid has null values for some records. I am applying 'before date' filter on this column which results in wrong filtering. I mean it shows all records having date less than date selected in filter and records having null value also.

After debugging I found that while filtering dates are converted in time and then compared (e.g - time of record in grid is compared with selected date in filter converted into time).
In javascript null < any +ve number is results in true. Therefore , records in grid having null values are also appears in grid after applying 'before date' filter.

To fix this issue I have overridden the method 'convertDateOnly' in class 'Ext.grid.filters.filter.Date' as follows -

convertDateOnly: function(v) {
var result;
if (v)
{
result = Ext.Date.clearTime(v, true).getTime();
}
return result;
}

In this method I am not initializing result variable to null. So value of result is undefined and if value coming as parameter (v) is null then undefined is returned and in JS undefined < any +ve number results in false.
This solves my issue.

But, is it right way? Or there is any another solution for this?
Please help me.


Thank you