更新p:在eventmodel更改时调度客户端

时间:2016-01-13 13:55:31

标签: jsf primefaces

我在我的应用程序中使用了这样的计划:

<p:schedule id="performanceSchedule" value="#{performanceScheduleView.eventModel}" />

另一个组件通过调用视图的此方法来修改日程表的数据模型:

private void updatePerformances() {
    eventModel.clear();
    for (final PerformanceModel perf : dataStorage.getPerformancesForVenue(activeVenueId)) {
        final ArtistModel artist = dataStorage.getArtistById(perf.getArtistId());
        final Date perfStart = perf.getDate();
        final Date perfEnd = new Date(perfStart.getTime() + 1000 * 60 * 60);
        eventModel.addEvent(new DefaultScheduleEvent(artist.getName(), perfStart, perfEnd));
    }
}

但这意味着用户必须转到另一个日期并返回,否则客户端无法看到更改。

我的第一个想法是像这样进行投票:

<h:form>
    <p:poll interval="1" update="performanceSchedule" />
</h:form>

但是这会导致计划跳转到当前日期并使其无法使用。

有关如何解决该问题的任何建议吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试添加 initialDate 属性?

<p:schedule id="performanceSchedule" value="#{performanceScheduleView.eventModel}" initialDate="#{performanceScheduleView.initialDate}" />

并在每次支持bean上设置正确的值。