Ajax Primefaces 有条件更新
Ajax Conditional update on Primefaces
是否可以使用 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(请求的交货日期)
<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
.
这是我能做的事吗?
- 将您的
dateSelect
事件更改为 update
任何东西,而是使用 Java 侦听器,而不是像..
<p:ajax event="dateSelect" listener="#{controller.onDateSelect}" />
- 在您的 Java 方法中检查您的两个日期,如果满足您的条件,则从该方法更新 UI 组件。
public void onDateSelect() {
if (date1 > date2) {
// update other calendar
PrimeFaces.current().ajax().update("requestedDeliveryDate");
}
}
是否可以使用 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(请求的交货日期)
<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
.
这是我能做的事吗?
- 将您的
dateSelect
事件更改为update
任何东西,而是使用 Java 侦听器,而不是像..
<p:ajax event="dateSelect" listener="#{controller.onDateSelect}" />
- 在您的 Java 方法中检查您的两个日期,如果满足您的条件,则从该方法更新 UI 组件。
public void onDateSelect() {
if (date1 > date2) {
// update other calendar
PrimeFaces.current().ajax().update("requestedDeliveryDate");
}
}