primefaces数据表:rowedit不起作用

问题描述 投票:1回答:2

我正在尝试编辑primitives dataTable中的行数据,但不起作用我在下面的链接中尝试了相同的primefaces展示代码]

http://www.primefaces.org/showcase/ui/data/datatable/edit.xhtml

我的jsf页面

<h:form id="form">
        <p:dataTable id="depTable" value="#{departmentBean.departments}"
            var="dep" editable="true">

            <f:facet name="header">
                All departments
            </f:facet>
            <p:ajax event="rowEdit" listener="#{departmentBean.onRowEdit}"
                update=":form:depTable" />
            <p:ajax event="rowEditCancel"
                listener="#{departmentBean.onRowCancel}" update=":form:depTable" />

            <p:column headerText="Id">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{dep.id}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText id="modelInput" value="#{dep.id}" style="width:100%" />
                    </f:facet>
                </p:cellEditor>
            </p:column>
            <p:column headerText="Name">
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{dep.name}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{dep.name}" style="width:100%" />
                    </f:facet>
                </p:cellEditor>
            </p:column>
            <p:column style="width:32px">
                <p:rowEditor />
            </p:column>
        </p:dataTable>
    </h:form>

和bean中的方法

public void onRowEdit(RowEditEvent event) {
    System.out.println(((Department) event.getObject()).getName());
    FacesMessage msg = new FacesMessage("Car Edited",
            ((Department) event.getObject()).getName());
    FacesContext.getCurrentInstance().addMessage(null, msg);
}

public void onRowCancel(RowEditEvent event) {
    FacesMessage msg = new FacesMessage("Edit Cancelled",
            ((Department) event.getObject()).getName());
    FacesContext.getCurrentInstance().addMessage(null, msg);
}

我正在使用primfaces 4.0

我正在尝试编辑primfaces dataTable中的行数据,但无法正常工作,我尝试使用以下链接http://www.primefaces.org/showcase/ui/data/datatable/edit.xhtml我的jsf中相同的primefaces展示代码...

jsf jsf-2 primefaces datatable
2个回答
1
投票

在我的情况下,问题是我的后备bean是@SessionScoped(在PF示例中是@ViewScoped),所以我需要修改dataTabe值:


0
投票

我遇到了这个问题,解决方法是将dataTable放在窗体中。

© www.soinside.com 2019 - 2024. All rights reserved.