2012-10-26 54 views
0

我想使用p:schedule,但列標題顯示的格式如下:EEE MM/dd,我確實需要切換到EEE dd/MMPrimefaces Schedule - 如何格式化列標題

研究的primefaces論壇和谷歌的項目,我就遇到了這個(和其他幾個線程):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

+0

一個出路是要用心編輯shedule.js在primefaces包文件,但你打破JAR。 http://forum.primefaces.org/viewtopic.php?f=3&t=25552 - 不可接受,但黃金錶麪人似乎不在乎。 – Mindwin

回答

0

一種非常原始的解決方案,我通過劫持固定這些頭日程安排頁面的輸出,改變日程安排調用的javascript代碼,以便把格式放在它裏面:

我用Jeremy Stein (click to go to question)(是的,HTML輸出的正則表達式,bash打開)編寫的類,並放置了一個過濾器聽着用時間表輸出特定頁面。

我用下面的模式替換字符串:在輸出插入columnFormat財產

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

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

,它開始呈現頭部右側。

我很想看到另一種方式來解決Primefaces不願意實現此功能。

+1

我不能動搖我正在犯下某種暴行的感覺......但也許它是本週的怪異光環。 – Mindwin

+0

今天,您可以使用p:schedule的擴展器屬性來擴展配置。 – user993553

+0

@ user993553對於這些「live」API,它必然會發展。問答仍然是發佈時現實的快照。很高興他們正在修復這些問題。 – Mindwin

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; 
    } 
}; 

}

0

我被盜號了「columnFormat」屬性解決了這個問題。

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

使用最新版本的primefaces,現在已經解決了。 你只需要添加columnFormat =「DDD d/M」在p:時間表標籤,如下圖所示:

<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"> 
+0

未來是一件很棒的事情,不是嗎?和bug票。 XD – Mindwin