2015-05-29 31 views
0

在Primefaces <p:dataTable>中,每行都有一個包含commandButton的列。 該commandButton更新與當前行對應的bean的值。如何在Primefaces中刷新行?

如何刷新我剛纔單擊的當前行,以便讀取器列將刷新?

<p:dataTable id="repositoryBean" 
    currentPageReportTemplate="Total : {totalRecords}" 
    lazy="true" 
    resizableColumns="false" 
    rows="200" 
    rowsPerPageTemplate="10,15,20" 
    sortBy="#{row.name}" 
    sortOrder="ascending" 
    style="margin:20px 0px;" 
    value="#{repositoryBean.users}" 
    var="row" 
    styleClass="small-datatable" 
    editable="true" 
    > 
    <p:ajax event="rowSelect" listener="#{repositoryBean.onDisplay}" 
     onstart="PF('loading').show()" 
    /> 

    <p:column headerText="#{label.cvs_repo_user_firstname}" sortBy="#{row.firstname}" sortOrder="ascending"> 
     <h:outputText value="#{row.firstname}" /> 
    </p:column> 
    <p:column headerText="#{label.cvs_repo_user_is_reader}" sortBy="#{row.reader}" sortOrder="ascending"> 
     <h:outputText value="#{row.reader}" /> 
    </p:column> 

    <p:column headerText="#{label.cvs_repo_user_action}" style="text-align:center" > 
     <p:commandButton 
      value="Reader" 
      styleClass="btn-off" 
      action="#{repositoryBean.onSetReader(row)}" 
      /> 
    </p:column> 
</p:dataTable> 
+0

_「如何刷新我剛剛單擊的當前行,以便讀取器列將刷新?」_:是否要更新包含某個列的完整行或僅包含特定單元格?如果可能的話, – Kukeltje

+0

整行,只是單元格,如果它是唯一的解決方案。 – fluminis

回答

2

爲此使用Omnifaces實用程序庫。它有'Ajax' functionality來更新數據表的行,甚至有一個特定的PrimeFaces示例。

它是這樣工作:

Ajax.updateRow(table, index); 

其中表是參照部件(未ID!但通過結合)和索引是行索引。