在可编辑的p:dataTable中,不能在行更新后刷新表单或页面

时间:2013-01-20 00:28:49

标签: primefaces datatable

我对dataTable的rowEdit有一个奇怪的行为。当我修改表的一行时,行被修改成功,但我无法刷新表单或页面,我尝试了解决方案

<p:ajax event="rowEdit" update="@form" listener="#{pecBean.onEdit}"/>

结果:表单未完全显示。然后我试了

<p:ajax event="rowEdit" update="@all" listener="#{pecBean.onEdit}"/>

结果:页面未完全刷新 在完整的源代码下面。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:composite="http://java.sun.com/jsf/composite"
    xmlns:p="http://primefaces.org/ui"
    xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
    <title>(For validation only)</title>
    <link href="./css/styles.css" rel="stylesheet" type="text/css" />
</h:head>
<body class="bodyMain">

    <composite:interface />
    <composite:implementation>
        <h:form id="form" prependId="false">
            <h:panelGrid>
                <h:panelGrid id="recapActes">
                    <h:panelGrid>
                        <p:panel id="recapGlobale" header="Récap globale Prise en charge">
                            <h:panelGrid>
                                <h:panelGrid columns="4">
                                    <h:outputText styleClass="lib" value="Total PEC Base" />
                                    <h:outputText styleClass="valeur"
                                        value="#{pecBean.recapPec.totalRemboursementBase}">
                                    </h:outputText>
                                    <h:outputText styleClass="lib" value="Total PEC complémentaire" />
                                    <h:outputText styleClass="valeur"
                                        value="#{pecBean.recapPec.totalRemboursementComplementaire}">
                                    </h:outputText>
                                </h:panelGrid>
                            </h:panelGrid>
                        </p:panel>
                    </h:panelGrid>
                    <h:panelGrid>
                        <p:dataTable sortBy="#{am.acte.categorieActe.code}"
                            editable="true" rowKey="#{am.idActePec}"
                            value="#{pecBean.actesPec}" var="am">
                            <p:ajax event="rowEdit" update="@all"
                                listener="#{pecBean.onEdit}" />
                            <p:column>
                                <f:facet name="header">Code acte</f:facet>
                                #{am.acte.code}
                            </p:column>
                            <p:column styleClass="bla">
                                <f:facet name="header">Lib acte</f:facet>
                                #{am.acte.libelle}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Coefficient</f:facet>
                                #{am.coefficientActe}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Quantité souscrite</f:facet>
                                #{am.quantiteActeSouscrit}
                            </p:column>
                            <p:column>
                                <f:facet name="header">Quantité accordée</f:facet>
                                <p:cellEditor>
                                    <f:facet name="output">
                                        <h:outputText value="#{am.quantiteActeAccorde}" />
                                    </f:facet>
                                    <f:facet name="input">
                                        <h:inputText value="#{am.quantiteActeAccorde}" required="true" />
                                    </f:facet>
                                </p:cellEditor>
                            </p:column>
                            <p:column>
                                <f:facet name="header">Observation</f:facet>
                                <p:cellEditor>
                                    <f:facet name="output">
                                        <h:outputText value="#{am.observation}" />
                                    </f:facet>
                                    <f:facet name="input">
                                        <h:inputTextarea value="#{am.observation}" />
                                    </f:facet>
                                </p:cellEditor>
                            </p:column>
                            <p:column>
                                <f:facet name="header">Pec Base</f:facet>
                                <h:outputText value="#{am.rembBase}">
                                </h:outputText>
                            </p:column>
                            <p:column style="text-align:right">
                                <f:facet name="header">Pec Compl</f:facet>
                                <h:outputText
                                    value="#{am.rembComplementaire}">
                                </h:outputText>
                            </p:column>
                            <p:column>
                                <p:rowEditor />
                            </p:column>
                        </p:dataTable>
                    </h:panelGrid>
                </h:panelGrid>
            </h:panelGrid>
        </h:form>

    </composite:implementation>

</body>
</html>

感谢您的帮助。

0 个答案:

没有答案