javascript - Primefaces datePicker范围过滤器结束日期问题

标签 javascript jsf primefaces datepicker

我正在使用 primefaces 10 数据表
我想过滤 java.util.date列如下:

<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>
问题:过滤器用作 日期 >= 开始日期和日期 < 结束日期
我希望它像这样工作:日期 >= 开始日期和日期 <= 结束日期
示例:我在 10 月 1 日创建了请求,并在 10 月 7 日创建了请求
如果我选择范围:
2021/10/01 - 2021/10/07 来自 的请求2021/10/07 未出现在过滤结果中
所以我试图破解代码如下:
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();
         }
但仍然得到相同的结果。

最佳答案

您也可以选择在服务器端处理此问题。
范围过滤器由 org.primefaces.model.filter.RangeFilterConstraint 处理.你可以在你的项目中重载这个类并修改isInRange检查Date的方法是你想要的方式。
或者,如果您使用的是 LazyDataModel ,只需按照提供的 org.primefaces.model.FilterMeta 操作即可的 MatchMode RANGE .

关于javascript - Primefaces datePicker范围过滤器结束日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69481865/

相关文章:

css - 如何选择 <p :dataTable> by CSS?

jsf - 我如何使用两个 uploadFile 组件?

jsf-2 - PrimeFaces dataTable滚动条在所需位置

java - Primefaces : how to create <p:menubar> dynamically in primefaces 4?

javascript - Trim() 和 Replace() 在书签中不起作用

javascript - AngularJS json.parse json数据第1行第1列的数据意外结束

javascript - 给 document.createElement 分配一个类 ('img' )

javascript - 只允许输入 float ,最大值为 100.00

ajax - a4j :commandButton and h:commandButton with a4j:ajax in it 之间的区别

java - 在 Flyway 上显示进度