2016-11-28 3 views
0

に直面私はラベルで自分のカレンダーがあります。その下に入力して、カレンダー値を変更する - 総理は

<cust:customField label="test" forId="calendarId"> 
     <p:calendar id="calendarId" 
            value etc... 
            pattern="yyyy-MM-dd HH:mm:ss" 
            mask="true" 
            styleClass="ui-inputdate" 
            readonlyInput="true" 
            locale="pl" 
            required="true" 
     </p:calendar> 
    </cust:customField> 

を私は入力があります。

  <h:panelGroup> 
       <p:inputText id="newHour"> 
        <p:ajax event="change" update="calendarId"/> 
       </p:inputText> 
       <h:outputText value="h"/> 
      </h:panelGroup> 

を私があれば誰でもnewHour」に値を送ることを確認してみてください"calendarId"の "HH"値が更新されます。それは可能ですか?

+0

Bean関数を呼び出すajaxイベントにリスナーを追加する必要があります。関数では、カレンダー値の時間を変更することができます。その後、カレンダーを更新するだけで新しい値が表示されます。 – lastresort

+0

beanからメソッドを追加する必要があります: ''?だから私は変数を持っている必要があります:日、時、分、秒はカレンダーに接続し、入力で更新することができますか? –

+0

はい、リスナーが必要です。カレンダーの値に接続されている変数のタイプは何ですか? – lastresort

答えて

1

.xhtml:

<p:inputText id="newHour" value="#{myBean.hours}> 
    <p:ajax listener="#{myBean.changeHours()}" update="calendarId"/> 
</p:inputText> 

MyBeanと:date.setHoursは()も余分なカレンダーを使用する代わりに働くだろうが、コンストラクタが原因でいくつかの問題で廃止されていることを

private int hours; 
private Date date; 

public void changeHours(){ 
    Calendar calendar = Calendar.getInstance(); 
    calendar.setTime(date); 
    calendar.set(Calendar.HOUR_OF_DAY, hours); 
    date = calendar.getTime(); 
} 

//getter + setter 

注意国際化。

関連する問題