单击上一个,下一个时如何获取事件:Schedule with primefaces

How to get the event when prev,next are clicked : Schedule with primefaces

我添加了 this page 的 PrimeFaces 时间表并得到如下结果:

我的以下事件运行良好,但如何在单击 prevnext 时获取和处理事件?

我还在图片中突出显示了一些:

<p:ajax event="dateSelect" listener="#{scheduleJava8View.onDateSelect}" update="eventDetails" oncomplete="PF('eventDialog').show();" />
            <p:ajax event="eventSelect" listener="#{scheduleJava8View.onEventSelect}" update="eventDetails" oncomplete="PF('eventDialog').show();" />
            <p:ajax event="eventMove" listener="#{scheduleJava8View.onEventMove}" update="messages" />
            <p:ajax event="eventResize" listener="#{scheduleJava8View.onEventResize}" update="messages" />

要在服务器上/在您的 bean 中捕获日期/查看更改,我发现最简单的方法就是进行延迟加载 (showcase, documentation)。这基本上允许您在 bean 中有一个方法,在视图更改的情况下传递开始和结束日期:

lazyModel = new LazyScheduleModel() {
  @Override
  public void loadEvents(LocalDateTime start, LocalDateTime end) {
    //
  }
};

.. 作为奖励,您的事件将延迟加载!

请注意,日期类型(java.time.LocalDateTimejava.util.Date)将取决于 PrimeFaces 版本。见 migration guide.

要修改 UI,您需要知道 PrimeFaces 正在使用 FullCalendar for the p:schedule component. You can use the extender attribute and configure the FullCalendar to your needs. See the toolbar documentation。请注意,FullCalendar 的版本将取决于 PrimeFaces 版本。再次,请参阅迁移指南。

要设置时间格式,请使用 timeFormat 属性。它使用 Moment.js. You could use hh:mmA. Try it on https://www.primefaces.org/showcase/ui/data/schedule/configureable.xhtml