2012-06-05 3 views
0

카탈로그를 업데이트해야하는 webapp에이 모듈이 있습니다.JSF를 처리하는 동안 버튼을 사용하지 않고 이미지로드 중 표시

아이디어는 비활성화h:commandButton에 모두 조치가 버튼을 클릭 한 후 바로 발생 해야하는하는 h:graphicImage를 표시합니다. 마지막 업데이트 프로세스가 종료 될 때 그것은 숨기기, 다른 방법으로해야h:graphicImage, 활성화h:commandButton하지만 이번에는 하나 '업데이트 성공'또는 '업데이트 실패'라는 라벨 h:outputText을 보여줍니다.

내 코드의 문제는 프로세스가 완료된 직후에 이미지와 레이블이 나타나고 위에서 설명한 내용을 수행 할 방법을 찾을 수 없다는 것입니다.

어디서 무엇을 놓치고 있습니까?

건배.

<a4j:commandButton id="btnActualiza" value="Actualizar catálogos" 
         render="messageCatalogos actualizacionCorrecta 
         @this imgProcesando" 
         onclick="this.disabled=true;" 
         oncomplete="this.disabled=false" 
         actionListener="#{administrationBean.doImgProcesandoVisible}" 
         action="#{administrationBean.doActualizaCatalogos}"/> 
    <a4j:outputPanel id="imgProcesando"> 
     <h:graphicImage rendered="#{administrationBean.imgProcesandoRendered}" 
         url="img/imgLoading.gif"/> 
    </a4j:outputPanel> 
    <h:panelGroup/> 
    <h:panelGroup/> 
    <a4j:outputPanel id="actualizacionCorrecta" style="font-size: 14px; color: #D17100"> 
     <h:outputText rendered="#{administrationBean.actualizacionCorrectaLabelRendered}" 
         value="Actualización correcta !"/> 
     <h:outputText rendered="#{administrationBean.actualizacionFalloLabelRendered}" 
         value="Fallo la actualización !"/> 
    </a4j:outputPanel> 

UPDATE

내 dev에 환경 :

  • 인 Mojarra 2.1.6
  • RichFaces 4.1.0.Final
  • 톰캣 7.0.14 (테스트)/톰캣 7.0 .22 (prod)

답변

3

대신 JS로 이미지를 표시하거나 숨길 필요가 있습니다. 답변에 대한

<a4j:commandButton ... 
    onbegin="this.disabled=true; $('#formId\\:loading').show()" 
    oncomplete="this.disabled=false; $('#formId\\:loading').hide()" 
/> 
+0

감사와

<h:graphicImage id="loading" url="img/imgLoading.gif" style="display:none" /> 

. 나는 그것을 시도했지만 코드'$ ('loading'). show()'는 이미지를 보이게하지 않는다. 거기에 또 다른 방법이 있을까요? 어쩌면 getDocumentById와 같은 것입니다. JS에 대해 모르겠지만 구성 요소에 대한 참조를 얻는 방법을 본 적이 있습니다. – BRabbit27

+1

아마도 RichFaces가 noconflict 모드에서 jQuery를 실행 중일 수 있습니다. '$ ('loading')'대신'jQuery ('loading')'을 사용하십시오. 그렇지 않으면 항상 좋은 'ol'document.getElementById ('loading ')'을 사용하고'.style.display ='block''과'.style.display = 'none''을 각각 설정할 수 있습니다. – BalusC

+0

아, 이미지가 양식 안에 있으면 양식 ID도 함께 입력해야합니다. 궁극적으로 이미지의 클라이언트 ID가됩니다. 생성 된 HTML 소스를 확인하십시오. – BalusC

관련 문제