Primefaces Schedule - 如何格式化列标题

时间:2012-10-26 19:30:40

标签: java jsf primefaces

我正在尝试使用p:schedule,但列标题显示的格式如下:EEE MM/dd我真的需要切换到EEE dd/MM

研究primefaces论坛和google项目,我遇到了这个(以及其他几个主题):http://code.google.com/p/primefaces/issues/detail?id=2546

似乎解决了这个问题,但我对如何使用它来解决问题毫无头绪。

我不确定这个问题是否重复(因为这个问题已经存在了几年),但搜索SO并没有任何点击。

那么,我该如何更改列标题的格式呢?

我将展示示例导入到我的项目中,到目前为止,我的计划事件的配置是:

<p:schedule value="#{scheduleController.eventModel}"
widgetVar="myschedule" view="agendaWeek"     allDaySlot="false"
slotMinutes="15" firstHour="7" showWeekends="FALSE"
leftHeaderTemplate="prev,next" rightHeaderTemplate=""
minTime="7am" maxTime="21pm" timeFormat="dd/MM hh:mm"
axisFormat="HH">

使用primefaces 3.3.1

4 个答案:

答案 0 :(得分:0)

一个非常粗略的解决方案,我通过劫持计划页面的输出来修复这些标题,更改计划调用的javascript代码以便将格式放入其中:

我使用了Jeremy Stein (click to go to question)编写的类(是的,HTML输出的正则表达式,bash on),并使用过程监听特定页面输出的过滤器。

我使用了以下Pattern和Replace String:

Pattern. compile("timeFormat:(.*?), behaviors");

replaceString= "timeFormat: $1, columnFormat : { month : 'ddd' , week : 'ddd d/M' , day : 'dddd d/M' }, behaviors"

通过在输出中插入columnFormat属性,它开始正确地呈现标题。

我很想看到另一种解决Primefaces不愿意实现此功能的方法。

答案 1 :(得分:0)

我解决了它从primefaces(scheduler.js)攻击javascript的问题。只需在页面中添加此代码即可编辑日期格式:

if (PrimeFaces.widget.Schedule != undefined) {
PrimeFaces.widget.Schedule.prototype.init = function() {
     this.cfg.titleFormat = {
            month: 'MMMM yyyy',
            week: "De d MMM [ yyyy]{ 'à' d [ MMM] 'de' yyyy}",
            day: 'dddd, d MMM , yyyy'
     };          
     this.cfg.columnFormat = {
            month: 'ddd',
            week: 'ddd d/M',
            day: 'dddd M/d'
     };
     if(this.jq.is(':visible')) {
        this.jqc.fullCalendar(this.cfg);
        return true;
     }  else {
        return false;
     }
};

}

答案 2 :(得分:0)

我通过攻击&#34; columnFormat&#34;解决了这个问题。属性。

columnFormat="month:'ddd', week:'dd/MM', day:'dd/MM/yyyy'}, titleFormat: {day: 'dddd, dd \'de\' MMMM \'de\' yyyy'"

答案 3 :(得分:0)

使用最新版本的primefaces,现在已经解决了。 您只需在p:schedule标记中添加columnFormat =“ddd D / M”,如下所示:

<p:schedule value="#{scheduleController.eventModel}"
widgetVar="myschedule" view="agendaWeek"     allDaySlot="false"
slotMinutes="15" firstHour="7" showWeekends="FALSE"
leftHeaderTemplate="prev,next" rightHeaderTemplate=""
minTime="7am" maxTime="21pm" timeFormat="dd/MM hh:mm"
axisFormat="HH" columnFormat="ddd D/M">