Tuesday, 12 October 2021

Primefaces datePicker range filter end date issue

I am using primefaces 10 dataTable

and I am tring to filter on java.util.date column as follows:

<p:column field="dateCreated" headerText="Request Date" filterMatchMode="range">
    <f:facet name="filter">
        <p:datePicker widgetVar="dateFilterWidget" pattern="yyyy/MM/dd"  selectionMode="range" onchange="dateFilterChange();">
          <f:convertDateTime type="date"  dateStyle="short" pattern="yyyy/MM/dd" />
        </p:datePicker>                             
    </f:facet>
    <h:outputText value="#{requestItem.dateCreated}">
        <f:convertDateTime pattern="yyyy/MM/dd hh:mm aa" locale="ar"/>
    </h:outputText>
</p:column>

ISSUE : the filter works as date >= startDate and date < endDate

and i want it to work like : date >= startDate and date <= endDate

Example : i have request create on 1 October and request created on 7 october if i choose the range from :

2021/10/01 - 2021/10/07 the request from 2021/10/07 does not appear in filter result

so i tried to hack the code as follows:

function dateFilterChange(){
             var datePicker = PF('dateFilterWidget');
             console.log(datePicker.getDate());
             if(datePicker.getDate() &amp;&amp; datePicker.getDate().length == 2 &amp;&amp; datePicker.getDate()[1]!= null){            
                 var endDate = datePicker.getDate()[1];
                 endDate.setHours(23, 59, 59);
                 console.log('endDate :'+endDate);
             }
             console.log(datePicker.getDate());             
             PF('inboxTableWidget').filter();
         }

but still getting same result.



from Primefaces datePicker range filter end date issue

No comments:

Post a Comment