Primefaces Ajax rowEdit 不起作用

Dev*_*per 2 ajax primefaces

我正在使用 Primefaces 5.2。我正在尝试编辑数据表中的行。

这是我的 xhtml:

<p:dataTable value="#{manageBean.punchList}" var="att" editable="true" id="detailsDataTable" 
                        >

                <p:columnGroup type="header">
                    <p:row>                         
                        <p:column headerText="In Time"/>                            
                        <p:column headerText="Action"/>
                    </p:row>
                </p:columnGroup>    

                <p:ajax event="rowEdit" listener="#{manageBean.updateEdited(att)}" />
                <p:ajax event="rowEditCancel"  />           

                <p:column >
                    <p:cellEditor>
                        <f:facet name="output"><h:outputText value="#{att.inTime}"/></f:facet>
                        <f:facet name="input"><p:inputText value="#{att.inTime}"/></f:facet>
                    </p:cellEditor>
                </p:column>                                             

                <p:column >
                    <p:rowEditor id="editID">
                        <p:tooltip for="editID" value="Edit" />
                    </p:rowEditor>                 
                </p:column>

            </p:dataTable>
Run Code Online (Sandbox Code Playgroud)

这是我的豆子:

public void updateEdited(Attend attObj)
    {
        logger.info("***************** updateEdited ***************** ");                   
    }
Run Code Online (Sandbox Code Playgroud)

当我单击编辑和更改值并更新时,方法没有被调用。

有什么帮助吗??

小智 5

您需要更改 rowEdit 侦听器:

<p:ajax event="rowEdit" listener="#{manageBean.updateEdited}" />
Run Code Online (Sandbox Code Playgroud)

在您的 ManagedBean 中,侦听器方法接收一个 RowEditEvent:

public void updateEdited(RowEditEvent event) {
    Attend myObject = (Attend) event.getObject();
}
Run Code Online (Sandbox Code Playgroud)