2016-04-19 6 views

Antwort

0

die nicht unterstützt wird, wenn Sie es ändern möchten Sie die JavaScript-Methode, die das Element erzeugt, so etwas wie dieses überschreiben müssen:

var calendar = #{rich:component('calendar')}; 
var fn = calendar.calendarContext.currentMonthControl; 

calendar.calendarContext.currentMonthControl = function(context) { 
    var newDate = RichFaces.calendarUtils.formatDate(context.calendar.getCurrentDate(), "MMM, yyyy", context.monthLabels, context.monthLabelsShort); 
    var markup = fn(context); 
    markup.childs[0].value = newDate; 
    return markup; 
} 

Natürlich müssen Sie sicherstellen, müssen Wenn der Kalender neu gerendert wird, wird dieser Code ebenfalls neu gerendert.


Der größte Teil des Kalendercodes wird auf der Clientseite erstellt. (Hinweis: Dies ist ein interner Kram, von dem nicht erwartet wird, dass er weiß, wie das funktioniert).

calendar.calendarContext.currentMonthControl ist verantwortlich für das Etikett zu schaffen, es gibt dieses Objekt:

{ 
    "tag":"div", 
    "attrs":{ 
     /* event listeners, unimportant */ 
    }, 
    "childs": 
     [{"value":"April, 2016"}] 
} 

Was Sie tun, ist die ursprüngliche Methode mit einem neuen ersetzen, die dieses Objekt ändert. RichFaces.calendarUtils.formatDate wird in der ursprünglichen Funktion mit dem Muster "MMMM, yyyy" aufgerufen, so dass wir es mit einem anderen Muster aufrufen, dann die ursprüngliche Funktion aufrufen, den Text ersetzen und das geänderte Objekt zurückgeben.

+0

können Sie bitte den Code wie erklären, was es tut, sehr Entschuldigung sehr neu zu RichFaces – Anupam

+0

Bearbeitete die Antwort, obwohl, wenn Sie zu RichFaces neu sind, ich nicht empfehlen würde, mit dem Code zu verwirren. – Makhiel