我使用 PrimeFaces 的日历组件。
<p:calendar id="hotelCalendar"
mode="inline"
beforeShowDay="disableDates"
pages="1">
<p:ajax event="dateSelect" listener="#{apartments.handleDateSelect}"
oncomplete="loadDisabledDates();" update="hotelCalendar"/>
</p:calendar>
逻辑:当用户单击日期时,后端应处理此日期并将其设置为禁用。在该日历从后端(使用 ajax 请求)接收到更新的禁用日期数组后,重新加载所有日期(使用 beforeShowDay)并用不同的颜色标记它们。可用 - 绿色,禁用 - 红色。
问题:日历update
几乎在dateSelect
事件发生后立即执行。这就是为什么在下一次点击之前我看不到当前的变化。
问题:
- js完成后如何强制执行更新
loadDisabledDates()
? - 有没有其他方法可以实现这样的功能?可能将日历组件绑定到bean?