2013-07-24 11 views
0

我正在使用带有roweditor的数据表,我的代码或多或少与primefaces网站上的展示示例上的代码相同,但由于某些原因,这些值未更新。Primefaces RowEditor不更改数据表中的值

另外,当我点击铅笔进行编辑时,编辑单元格中没有显示当前值。

这里是我的代码:

XHTML:

<h:form id="updateform"> 
      <p:dataTable id="updatetable" value="#{EditingBean.row}" var="column" 
       editable="true" 
       style="width: 780px; overflow-x: auto; white-space: normal;"> 
       <f:facet name="header">TEST</f:facet> 
       <p:column rendered="#{column.display}" style="white-space: normal;"> 
        <h:outputText value="#{column.alias}" /> 
       </p:column> 
       <p:column rendered="#{column.display}" style="white-space: normal;"> 
        <p:cellEditor> 
         <f:facet name="output"> 
          <h:outputText value="#{column.value}" /> 
         </f:facet> 
         <f:facet name="input"> 
          <p:inputText value="{#column.value}" /> 
         </f:facet> 
        </p:cellEditor> 
       </p:column> 
       <p:column rendered="#{column.display}" style="white-space: normal;"> 
        <p:rowEditor rendered="#{column.modify}" /> 
       </p:column> 
      </p:dataTable> 
     </h:form> 

EditingBean:

@ManagedBean(name = "EditingBean") 
@ViewScoped 
public class EditingBean implements Serializable { 

    private static final long serialVersionUID = -772702647887310138L; 

    private List<Result> row; 

    public List<Result> getRow() { 
     return row; 
    } 
    public void setRow(List<Result> row) { 
     this.row = row; 
    } 
} 

结果:

public class Result implements Serializable { 

    private static final long serialVersionUID = 1L; 

    private String alias; 

    private String name; 

    private String value; 

    private String modify; 

    private String display; 

    // getters + setters 
+0

'{#column.value}'应该是'#{column.value}'。这只是一个错字或者你的实际代码是否包含它? – user1983983

+0

我的实际代码包含它,谢谢指出。它正在工作。我不敢相信这是一个愚蠢的错误。我如何设置你的答案被接受? – noisegrrrl

回答

1

你必须在代码中一个错字,改变{#column.value}#{column.value}