2014-06-15 51 views
0

我想要一個按鈕來設置編輯模式並刷新窗體,但通過單擊按鈕,沒有任何反應。PrimeFaces commandButton設置編輯模式並刷新表格

這是我的代碼:

<h:form> 
    <h:panelGrid columns="2" cellpadding="5"> 
     <p:commandButton type="submit" value="Edit Your Records" icon="ui-icon-edit" 
         update="@form" rendered="#{!bean.editMode}"> 
      <f:setPropertyActionListener value="true" target="#{bean.editMode}"/> 
     </p:commandButton> 
     <p:commandButton type="submit" value="Exit Edit Mode" icon="ui-icon-back" 
         update="@form" rendered="#{bean.editMode}"> 
      <f:setPropertyActionListener value="false" target="#{bean.editMode}"/> 
     </p:commandButton> 
    </h:panelGrid> 

    <p:dataTable id="table" value="#{bean.table}" var="apartment"> 
     ... 
    </p:dataTable> 
</h:form> 

謝謝!

+1

我認爲受影響的'value'屬性到'target'一個,應該用EL表示:'value =「#{true}」'。 – Omar

回答

0

我會建議使用

<h:form> 
    <p:commandButton value="Edit Your Records" update="@form" rendered="#{!bean.editMode}" action="#{bean.toggleEditMode()}" /> 
    <p:commandButton value="Exit Edit Mode" update="@form" rendered="#{bean.editMode}" action="#{bean.toggleEditMode()}" /> 
    <h:outputText value="#{bean.editMode}" /> 

public void toggleEditMode() { 
    this.editMode = !this.editMode; 
} 
0

OK,這接縫是所謂的 '行動' 屬性的功能需要返回一個字符串。

以下工作:

public String toggleEditMode() { 
    this.editMode = !this.editMode; 
    return "#"; 
} 

謝謝!