私は行編集可能なprimefacesデータテーブルをたくさん使用しましたが、ここで私はそれで立ち往生しています。データテーブルは正しく表示されていますが、編集ボタンをクリックするとデータテーブルが編集可能モードになり、ここでは のキャンセル ボタンしか使用できません。保存ボタンは何もせず、クリックしても編集可能モードのままです。(そして Bean アクションは呼び出されません)。
ここにコードがあります
<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>
そして豆の部分
@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");
}
}