primefaces 行扩展未更新

primefaces rowexpansion not updated

我在使用 primefaces 更新数据表时遇到问题。问题是,在提交 "change" 按钮后,数据表没有更新——不是 ajax=false,不是 update=...。也许有人有想法?

注意:按钮和数据表是两种不同的形式,但应该没有问题,适用于我项目中的另一个案例。并且 userOrders 是延迟加载的,但是我在 bean 中记录了列表,数据是正确可用的。

<h:form rendered="#{orderModel.positions.size() > 0}">
        <p:commandButton icon="fa fa-edit" value="change" update=":table:orderDT, temp" action="#{orderModel.editOrder()}" rendered="#{orderModel.posChecked and orderModel.orderEditable}"/>
</h:form>

<h:form id="table" >
    <p:dataTable id="orderDT" rendered="#{orderModel.user.orders.size() > 0}" reflow="true" var="order" value="#{orderModel.userOrders}" selection="#{orderModel.tempOrder}" selectionMode="single" rowKey="#{order.id}" scrollable="true" style="margin: 20px">
         <p:ajax event="rowSelect" update=":table" listener="#{orderModel.onRowSelected}"/>
         <f:facet name="header">
               Getätigte Bestellungen
         </f:facet>
         <p:column style="width:16px">
                <p:rowToggler/>
         </p:column>
         <p:column headerText="Bestellnummer">
                 <h:outputText value="#{order.id}"/>
         </p:column>


         <p:rowExpansion>
                  <p:dataTable id="exp" var="pos" value="#{order.orderPositions}" reflow="true">
                            <p:column headerText="Anzahl">
                                <h:outputText value="#{pos.quantity}"/>
                            </p:column>
                  </p:dataTable>
         </p:rowExpansion>
     </p:dataTable>
</h:form>

我自己解决了:我将 rendered="#{orderModel.user.orders.size() > 0} 调整为 rendered="#{orderModel.userOrders.size() > 0} 添加了延迟加载 。可能第一个就够了,但我认为访问的字段应该是相同的。