2016-11-28 54 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

您需要一個監聽器添加到您的它調用一個函數豆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:

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 

注意date.setHours()也將工作,而不是使用一個額外的日曆,但構造函數是因爲有一些問題棄用國際化。