Primefaces Ajax rowEdit不起作用

时间:2015-11-17 07:23:25

标签: ajax primefaces

我正在使用Primefaces 5.2。我正在尝试编辑dataTable中的行。

这是我的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>

这是我的豆子:

public void updateEdited(Attend attObj)
    {
        logger.info("***************** updateEdited ***************** ");                   
    }

当我点击编辑并更改值并更新时,方法不会被调用。

任何帮助??

2 个答案:

答案 0 :(得分:4)

您需要更改rowEdit侦听器:

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

在ManagedBean中,侦听器方法接收RowEditEvent:

public void updateEdited(RowEditEvent event) {
    Attend myObject = (Attend) event.getObject();
}

答案 1 :(得分:1)

这是一个有效的例子。

XHTML文件:

<h:form>
    <p:dataTable value="#{managedBean.myObj}" var="myObj editable="true">

        <p:ajax event="rowEdit" listener="#{managedBean.onEdit}" update=":messages" />

        <p:column style="width:30%" >
            <h:outputText value="#{myObj.label}" />
        </p:column>

        <p:column style="width:50%" >
            <p:cellEditor>
                <f:facet name="output">
                    <h:outputText value="#{myObj.description}" />
                </f:facet>
                <f:facet name="input">
                    <p:inputText value="#{myObj.description}" />
                </f:facet>
            </p:cellEditor>
        </p:column>

        <p:column style="width:20%" >
            <p:rowEditor />
        </p:column>
    </p:dataTable>
</h:form>

和managedBean:

public void onEdit(RowEditEvent event) throws ValidatorException {
        MyObj myObj = (MyObj) event.getObject();
        .....
        .....
}