2013-06-05 3 views
2

버튼을 클릭하면 데이터 테이블이 데이터로 채워진 것처럼 보입니다. 그 전에는 데이터 표가 없어야합니다.버튼을 클릭 한 후 데이터가 채워진 데이터 테이블을 표시하려는 경우

<p:commandButton value="Go" styleClass="apply_button" actionListener="#{searchBean.getUserList}"> 
    <f:attribute name="trigram" value="#{searchBean.trigram}"/> 
    <f:attribute name="firstName" value="#{searchBean.firstName}"/> 
    <f:attribute name="lastName" value="#{searchBean.lastName}"/> 
</p:commandButton> 

여기서 getUserList() 메소드는 데이터 테이블에 채워 져야하는 데이터 목록을 반환하며 작동합니다.

<p:dataTable value="#{searchBean.listUser}" var="user"> 
    <p:column headerText="Trigram"> 
     <h:outputText value="#{searchBean.trigram}"/> 
    </p:column> 
</p:dataTable> 

단추를 클릭하면 데이터 표에 표시되지만 단추를 클릭하기 전에 빈 필드가 표시됩니다. 내 버튼을 클릭 한 후 데이터 테이블을 표시하도록 코드를 수정하려면 어떻게합니까? 코드는 <h:form> 태그 내에 있습니다.

그리고 Managed Bean searchBean@ViewScoped입니다.

private boolean visible = false; // getter/setter 

public void getUserList(ActionEvent event) 
{ 
    setVisible(true); 

    // Your code 
} 

을 그리고 같은보기를 수정 :

답변

3

당신은 간단한 게터/세터를 초기화 할 수 있습니다

<p:commandButton value="Go" styleClass="apply_button" actionListener="#{searchBean.getUserList}" update="table-wrapper"> 
    <f:attribute name="trigram" value="#{searchBean.trigram}"/> 
    <f:attribute name="firstName" value="#{searchBean.firstName}"/> 
    <f:attribute name="lastName" value="#{searchBean.lastName}"/> 
</p:commandButton> 

<h:panelGroup id="table-wrapper"> 
    <p:dataTable rendered="#{searchBean.visible}" value="#{searchBean.listUser}" var="user"> 
     <p:column headerText="Trigram"> 
      <h:outputText value="#{searchBean.trigram}"/> 
     </p:column> 
    </p:dataTable> 
</h:panelGroup> 

주 버튼의 update 속성 h:panelGroup 래퍼 테이블에 rendered 속성을.

관련 문제