2012-07-17 2 views
0

Im 프라임셋 FieldSet 구성 요소를 사용하고 필드 세트 내에 버튼 필드가 지정되었습니다. 명령 단추를 클릭하면 h : selectonemenu & 입력 텍스트가 표시되어야하고 추가 클릭시 h : selectOnemenu & 입력 텍스트가 숨겨져 야합니다. 아래 코드는 & 숨기기를 표시하도록 작성한 코드입니다. 쇼 부분은 잘 작동합니다. 그러나 버튼을 클릭하여 숨기려고하면 작동하지 않습니다.JSF CommandButton Issue 표시/숨기기

XHTML 코드

<h:panelGrid id="grid1" columns="3"> 
    <p:fieldset id="GlobalAdjustment" legend="GlobalAdjustment" style="font-size:12px !important;width:30%" > 
    <h:commandButton id="globalAdjustID" image="#{review.imageUrl}" actionListener="#{review.showUpdateList}" /> 
    </p:fieldset> 

    <h:selectOneMenu id="SelectID" value="#{review.reviewList}" rendered="#{demandReview.selectoneRenderer}"> 
     <f:selectItems id="FilterSelectListID" value="#{review.reviewListIDs}" style="font-size:12px !important"></f:selectItems> 
    </h:selectOneMenu> 
    <h:inputText id="fieldUpdateID" required="false" rendered="#{review.inputTextRenderer}"></h:inputText> 
</h:panelGrid> 

ManagedBean은 된 ActionListener 방법

public void showUpdateList(ActionEvent event) 
{ 
    System.out.println("entering the Action Method:"); 
    Map<String, Object> idMap = new HashMap<String, Object>() ; 
    idMap = event.getComponent().getAttributes(); 
    String url = (String) idMap.get("image"); 
    System.out.println("The url is :"+url); 
    if(url.equals("/images/add_data_button.png")){ 
     //upbean.setImageUrl("/images/remove_data_button.png") ; 
     imageUrl ="/images/remove_data_button.png" ; 
     selectoneRenderer = true; 
     inputTextRenderer = true; 
    }else 
    { 
     imageUrl ="/images/add_data_button.png" ; 
     selectoneRenderer = false; 
     inputTextRenderer = false; 
    } 
} 

내가 처음으로 필드 셋 내부의 명령 단추를 클릭하면 잘 작동하고 selectoneMenu & 텍스트 상자를 표시

. 추가 클릭이 발생하면 ActionListener가 호출되지 않습니다. 문제를 해결하도록 도와주세요.

감사합니다.

+1

변환 또는 유효성 검사가 실패하기 때문에 JSF의 호출 응용 프로그램 단계에 도달하지 않았을 수 있습니다. 오류를 표시하기 위해 페이지에'h : messages' 태그가 있습니까? 그렇지 않다면 어떤 것을 보도록 추가하십시오. –

답변

0

서버 측을 사용하여 요구 사항을 지정합니까? 이런 식으로 간단한 자바 스크립트가 더 적합하다고 생각했을 것입니다. 당신은 다른 접근 방법을 시도 할 수 있습니다

<h:commandButton id="xyz" onclick="$('#elementId').toggle();"/> 
1

:

예를 들어, 같은 작업을 수행 할 jQuery 라이브러리를 사용합니다. 이 같은 업데이트 속성에있는 명령 : P를 사용

<h:panelGrid id="grid1" columns="3"> 
    <p:fieldset id="GlobalAdjustment" legend="GlobalAdjustment" style="font-size:12px !important;width:30%" > 
    <p:commandButton id="globalAdjustID" image="#{review.imageUrl}" actionListener="#{review.showUpdateList}" update="grid1"/> 
    </p:fieldset> 

    <h:selectOneMenu id="SelectID" value="#{review.reviewList}" rendered="#{demandReview.selectoneRenderer}"> 
     <f:selectItems id="FilterSelectListID" value="#{review.reviewListIDs}" style="font-size:12px !important"></f:selectItems> 
    </h:selectOneMenu> 
    <h:inputText id="fieldUpdateID" required="false" rendered="#{review.inputTextRenderer}"></h:inputText> 
</h:panelGrid> 

이 방법 당신은 부분 처리 및 AJAX를 통해 수행됩니다 패널의 내부 구성 요소의 조건 renderization를 사용합니다.

또한 서버 콘솔을 점검하여 대기열에 표시되지 않은 메시지가 있는지 확인하는 것이 좋습니다.