0

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

}
4

1 回答 1

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"/>
于 2013-08-29T08:38:04.373 回答