1
   <p:dataTable id="tableContas" value="#{extratoBancoController.contas}" var="entity" editable="true">
                <f:facet name="header">
                    <h:outputText value="Contas" />
                </f:facet>

                <p:ajax event="rowEdit"  listener="#{extratoBancoController.calcularValores()}" update=":mainForm:relatorios" process=":mainForm:relatorios" /> <!-- I tried with, and without process tag. Result is the same-->

                <p:column  style="width:80px">
                     <f:facet name="header">  
                        <h:outputText value="#{msg['entity.id']}" />  
                    </f:facet>  
                    <h:outputText value="#{entity.id}" />
                </p:column>

                                    <!-- Other columns here --> 

                <p:column sortBy="#{entity.valor}" headerText="#{msg['entity.valor']} (R$)">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{entity.valor}" style="float: right; padding-right: 50%;"/>                           
                        </f:facet>

                        <f:facet name="input">
                            <po:inputDinheiro id="inputValor" required="true" fieldId="valor" targetValue="#{entity.valor}" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>                     

                <p:column> 
                    <p:rowEditor  />  
                </p:column>

                <p:column>
                    <p:commandButton icon="ui-icon-minus" actionListener="#{extratoBancoController.calcularValores()}" update=":mainForm:relatorios" process=":mainForm:relatorios">
                        <p:collector value="#{entity}" removeFrom="#{extratoBancoController.contas}" />
                    </p:commandButton>
                </p:column>

                <f:facet name="footer">
                    <h:outputText
                        value="Total Entrada: R$ #{extratoBancoController.totalEntrada}" />
                    <h:outputText value=" - " />
                    <h:outputText
                        value="Total Saida: R$ #{extratoBancoController.totalSaida}" />
                </f:facet>

            </p:dataTable>

それで、何が起こるか:

Step1: スクエア 0 の様子 画像

Step2: 鉛筆アイコンをクリックして値を変更し、確認してみましょう! :) 画像

結果: ajax の後、データテーブルのレイアウトに次のことが起こります。 画像

PS: レイアウトが壊れるだけで、値は期待どおりに更新されます。:(

4

1 に答える 1

1

ごめんなさいみんな...

コンポーネントを 1 つずつ更新する必要があります。

 update=":mainForm:tableContas :mainForm:painelRel" 

ap:outputPanel を更新すると壊れます。

于 2013-03-29T16:37:22.033 に答える