【发布时间】:2020-11-06 07:36:56
【问题描述】:
是否可以使用 Ajax 进行条件更新。我有两个日历组件,代码如下
日历组件 1(工作日期)
<h:outputLabel value="#{lbl.WorkDate}" for="workDate" rendered="#{!userManager.customerUser}"/>
<p:calendar id="workDate" value="#{jobs_Builder.selected.workDate}" pattern="dd/MM/yyyy" mask="true" rendered="#{!userManager.customerUser}" mindate="Date()">
<p:ajax event="dateSelect" update="requestedDeliveryDate" />
</p:calendar>
日历组件 2(requestedDeliveryDate)
<h:outputLabel value="#{lbl.RequestedDeliveryDate}" for="requestedDeliveryDate" rendered="#{!userManager.customerUser}"/>
<p:calendar id="requestedDeliveryDate" value="#{jobs_Builder.selected.requestedDeliveryDate}" pattern="dd/MM/yyyy" mask="true" rendered="#{!userManager.customerUser}" mindate="#{jobs_Builder.selected.workDate}"/>
只要在wordkdate 中设置日期,就会重置requestedDeliveryDate,但我想要的是只有在requestedDeliveryDate 早于workDate 时才能重置。
这是我能做的吗?
【问题讨论】:
-
看看stackoverflow.com/questions/16378099/…这个原理是一样的。
-
是的,在您的
dateSelect事件中不要使用update调用Javalistener方法,在该方法中您可以检查日期,如果日期符合您的要求,那么您可以选择使用PrimeFaces.current().ajax().update("requestedDeliveryDate");从服务器端更新另一个日历 -
非常感谢,@Melloware。像魅力一样工作
-
好的,如果您不介意选择它作为解决方案,我将其发布为答案
标签: jsf primefaces