2012-07-05 2 views
2

두 가지 다른 날짜 사이에 데이터베이스의 세부 정보를 가져올 검색 기준이 있습니다.rerendering rich : 처음으로 캘린더가 작동하지 않지만 페이지 새로 고침 작업이 있습니다.

나는 h : slectOneMenu에 { "from", "to", "between"} 목록이 채워져 있습니다. "에서"와 "날짜"에 대한 나는 풍부한을 표시해야합니다 : 날짜 입력을 제공하고 "사이에"나는 두 개의 풍부한 : 캘린더 입력 시작 날짜와 종료 날짜를 제공해야합니다.

내 코드처럼이

<h:selectOneMenu id="startdate" 
     value="#{commoncontroller.coverDateType}"> 
     <a4j:support event="onchange" ajaxSingle="true"  
        action="#controller.dateSelectionChanged}" 
        reRender="startdateone,startdatetwo"/> 
      <f:selectItems value="#{controller.startDateMap}" /> 
    </h:selectOneMenu> 

    <h:panelGrid id="startdateone" layout="block" rendered="#{controller.dateOneStatus}"> 
      <rich:calendar id="date1"        value="#{controller.covStartDate}" showWeeksBar="false" /> 
    </h:panelGrid> 

    <h:panelGrid id="startdatetwo" layout="block" rendered="#{controller.dateTwoStatus}"> 
      <rich:calendar id="date2"        value="#{controller.covStartDate2}" showWeeksBar="false" /> 
    </h:panelGrid> 

전 달력이 panelGrid 렌더링 속성이 백엔드에서 true로 설정하지만 난 새로 고치면 경우에도 처음으로 렌더링되지 않습니다 선택 메뉴에서 값을 선택하는 경우 페이지가 렌더링됩니다.

도움을 주시면 감사하겠습니다.

답변

0

rendered 속성을 가진 reRendering 구성 요소와 관련하여 직접적인 문제가 있습니다. 바로 제가 직접 말한 것은 코드에서 수행 한 작업을 의미합니다. a4j:outputPanelreRender과 같은 상위 구성 요소를 사용하여 두 개의 패널 그리드를 배치하고 해당 id를 사용하는 a4j : outputPanel을 시도해보십시오. 이처럼

:이 도움이

<h:selectOneMenu id="startdate" 
     value="#{commoncontroller.coverDateType}"> 
     <a4j:support event="onchange" ajaxSingle="true"  
        action="#controller.dateSelectionChanged}" 
        reRender="box"/> 
      <f:selectItems value="#{controller.startDateMap}" /> 
    </h:selectOneMenu> 

<a4j:outputPanel id="box"> 
    <h:panelGrid id="startdateone" layout="block" rendered="#{controller.dateOneStatus}"> 
      <rich:calendar id="date1"        value="#{controller.covStartDate}" showWeeksBar="false" /> 
    </h:panelGrid> 

    <h:panelGrid id="startdatetwo" layout="block" rendered="#{controller.dateTwoStatus}"> 
      <rich:calendar id="date2"        value="#{controller.covStartDate2}" showWeeksBar="false" /> 
    </h:panelGrid> 

</a4j:outputPanel> 

희망. -cheers

+0

Ellie 님에 감사드립니다. 그래, 나는 그저 일찍 그런 식으로하고 있었지만 richFaces 컴포넌트를 가능한 한 최대로 사용하지 말 것을 요청했다. 이렇게해서 이렇게 노력했습니다. 하지만 panelGrid에 대한 조건부 CSS를 사용하여 성공했습니다.

+0

축하합니다 :) –