2013-08-29 104 views
0

我用了很多primefaces數據表可編輯行,但在這裏我堅持下去。 數據表正確顯示,但是當我點擊編輯按鈕時,數據表變成可編輯模式,在這裏我只能使用取消按鈕。保存按鈕什麼也不做,當我點擊它時我仍然處於可編輯模式。 (以及未調用的bean操作)。Primefaces行可編輯數據表保存未解除

下面是代碼

<p:dataTable value="#{bean.days}" var="days" editable="true"> 

    <p:ajax event="rowEdit" listener="#{bean.changeCell}"/> 
    <p:ajax event="rowEditCancel" listener="#{bean.changeCell}"/> 

    <p:column headerText="my header"> 
     <p:cellEditor> 
      <f:facet name="output" > 
       <h:outputText value="#{days.get(4).date}" > 
        <f:convertDateTime pattern="dd/MM" timeZone="CET" /> 
       </h:outputText> 
      </f:facet> 
      <f:facet name="input"> 
       <p:calendar value="#{days.get(4).date}" locale="fr" mindate="#{jours.get(0).date}" pattern="dd/MM"/> 
      </f:facet> 
     </p:cellEditor> 
    </p:column> 

    ... other columns 

    <p:column> 
     <p:rowEditor /> 
    </p:column> 
</p:dataTable> 

和bean

@ManagedBean(name = "bean") 
@ViewScoped 
public class MyBean { 

    private List<List<MyDays>> days; // with getters and setters 

    @PostConstruct 
    public void init() { 
     // Filling the list 
    } 

    public void changeCell(RowEditEvent event) { 
     List<MyDays> j = (List<MyDays>)event.getObject(); 
     System.out.println("here"); 
    } 

} 

回答

0

現在是確定的一部分。事實上,我使用getter來訪問我的列表數據,這是一個錯誤。

我改變了這種

<p:calendar value="#{days.get(4).date}" locale="fr" mindate="#{jours.get(0).date}" pattern="dd/MM"/> 

這個

<p:calendar value="#{days[4].date}" locale="fr" mindate="#{jours[0].date}" pattern="dd/MM"/> 
相關問題