2

次の XML を使用して生年月日カレンダーを取得しています。

<p:calendar pattern="MM-dd-yyyy" value="#{registration.birthDate}" 
    navigator="true" required="true" label="Birth Date" 
    id="birthDateCal" yearRange="c-100:c-17" />

ただし、カレンダーにはいくつかの問題があります。カレンダーを開くと、おかしな方法で年が変わるようです。

ここに画像の説明を入力

誰もこれを見たことがありますか?

4

2 に答える 2

2

これはすでに Primefaces にリストされているバグのようです。

http://code.google.com/p/primefaces/issues/detail?id=2737

これは、jQuery UI カレンダー コンポーネントの根本的なバグであり、Primefaces とは何の関係もないという理由で、Won't Fixとしてマークされました。

ここでの次の説明では、jQuery 側でのこの問題について詳しく説明します。

http://forum.jquery.com/topic/datepicker-yearrange-bug

基本的に、 yearRange 属性は想定どおりには機能しません。年の範囲は、今日の日付ではなく、カレンダー コンポーネントのレンダリング時点で現在選択されている日付に設定されます。

編集:

これを回避する 1 つの可能な方法は、マネージド Bean メソッドから動的な yearRange を決定するアルゴリズムを作成し、今日の日付と生年月日の差に基づいてそれを作成することです。yearRange="#{managedBean.dynamicYearRange()}"動的に呼び出すように設定できます。

于 2012-10-07T13:54:18.137 に答える