Primefaces行可编辑数据表保存未触发

时间:2013-08-29 07:11:04

标签: ajax primefaces datatable

我使用了很多带有行可编辑的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");
    }

}

1 个答案:

答案 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"/>