2016-09-07 2 views
1

캘린더 입력 요소와 그 위에 datatable이라는 두 개의 프라임 페이스가있는 양식이 있습니다. 달력 항목은 테이블에 표시된 결과를에서까지 값으로 필터링하는 데 사용됩니다. 따라서 팝업을 통해 마우스 조작을 할 때 잘 작동하는 p : ajax 'dateSelect'이벤트를 사용합니다. 하지만 keybord를 사용하여 입력 필드에서 날짜를 수동으로 변경하면 변경 이벤트가 발생하지 않습니다. 두 번째 p : ajax 이벤트를 사용하여 흐림 또는 변경하면 새 값을 가져올 수 없습니다.primefaces calendar에서 수동으로 입력 한 날짜를 제출하는 방법은 무엇입니까?

<p:calendar id="startDate" 
       value="#{filterStart}" 
       required="true" 
       showOn="button" 
       maxdate="#{filterEnd}" 
       > 
     <p:ajax event="dateSelect" 
       listener="#{listController.onFilterStartChanged}" 
       update="filterTbl, endDate" /> 
     <p:ajax event="change" 
       listener="#{listController.onFilterStartBlured}" 
       update="filterTbl, endDate" 
       process="@this" 
       partialSubmit="true" immediate="true" />                  
</p:calendar> 

선택은 (는) 새로운 값을 읽을 수 년대 pupup을 통해 만들어 질 때 호출되는 onFilterStartChanged 방법 :

public void onFilterStartChanged(final SelectEvent event) {...} 

하지만 다른 구성 요소에 초점을 이동할 때 키보드 변경 해고되지 않습니다

public void onFilterStartBlured(final AjaxBehaviorEvent event) { 
    Date newDate = (Date)((Calendar)event.getSource()).getValue(); 
    ... 
} 

어떻게 새 날짜를 볼 수 있습니까?

답변

0

나는 Primefaces 5.3에서 p : calendar와 동일한 필요성을 가지고 있으며,이 코드는 나를 부잣집으로 사용한다. 내가 이벤트 매개 변수를

<p:calendar id="startDate" 
      value="#{filterStart}" 
      required="true" 
      showOn="button" 
      maxdate="#{filterEnd}" 
      > 
    <p:ajax event="dateSelect" 
      listener="#{listController.onFilterStartChanged()}" 
      update="filterTbl, endDate" /> 
    <p:ajax event="change" 
      listener="#{listController.onFilterStartChanged()}" 
      update="filterTbl, endDate/></p:calendar> 

방법에 어떤 매개 변수를 사용하지 않는, 값은 filterStart

public void onFilterStartChanged() {...} 
입니다
관련 문제