2016-04-19 12 views

答えて

0

、あなたはそれを変更したい場合は、要素を作成し、JavaScriptメソッドを上書きする必要があります、このような何か:もちろん

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

、あなたは確認する必要がありますカレンダーが再レンダリングされると、このコードも再レンダリングされます。


ほとんどのカレンダーコードはクライアント側で作成されます。 (注:これは内部的なものですが、これがどのように機能するかは分かりません)。

calendar.calendarContext.currentMonthControlは、ラベルを作成するための責任がある、それはこのオブジェクトを返します。

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

あなたは何このオブジェクトを変更し、新規にオリジナルのメソッドを置き換えるです。 RichFaces.calendarUtils.formatDateは元の関数で "MMMM、yyyy"というパターンで呼び出されますので、別のパターンで呼び出すと元の関数が呼び出され、テキストが置換され、変更されたオブジェクトが返されます。

+0

RichFacesの新しいコードを説明してください。非常に残念ですが、RichFacesの新機能は非常に残念です。 – Anupam

+0

RichFacesを初めてお使いの場合は、このコードを使いこなすことはお勧めしません。 – Makhiel

関連する問題