我使用了很多带有行可编辑的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");
}
}
答案 0 :(得分: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"/>