Falsche Werte in <p: rowExpansion> und leere Werte in <p: cellEditor> auf der gescrollten Seite bei Verwendung von <p: dataTable lazy = "true" liveScroll = "true">

Ich verwende JSF 2.2 mit PrimeFaces 4.0. Ich habe ein<p:dataTable> mitLive-Scrollen, faules Laden, Zeilenerweiterung undZellbearbeitung, usw.

<p:dataTable
    id="dtaTable"
    selection="#{cont.selectedArray}"
    resizableColumns="true"
    draggableColumns="true"
    var="dataModel"
    value="#{cont.yieldBondsModel}"
    editable="true"
    editMode="cell"
    selectionMode="multiple"
    rowSelectMode="add"
    scrollable="true"
    scrollHeight="650"
    rowKey="#{modeld.id}+#{model.name}"
    rowIndexVar="rowIndex"
    filterEvent="enter"
    styleClass="screenScrollStyle"
    scrollRows="25"
    liveScroll="true"
    lazy="true"
    rows="50"
    filteredValue="#{cont.filteredModel}"
    widgetVar="dt4"
>
    <p:rowExpansion>
        <h:panelGrid id="display" columns="2" cellpadding="4" style="width:300px;" styleClass="ui-widget-content grid">
            <f:facet name="header" styleClass="dataTableHeader">Other Data</f:facet>
            <h:outputText value="id " />
            <h:outputText value="#{dataModel.id}"/>
            <h:outputText value="Name" />
            <h:outputText  value="#{dataModel.name}" />
        </h:panelGrid>
    </p:rowExpansion>

    <p:column width="15">
        <p:rowToggler />
    </p:column>

    ...
</p:dataTable>

Auf der ersten Seite wirkt alles wie ein Zauber. Sobald ich nach unten scrolle, werden die Daten einwandfrei geladen, es treten jedoch einige Probleme bei der Zeilenerweiterung und beim Bearbeiten von Zellen auf:

Bei der Zeilenerweiterung erhalte ich falsche Werte. Möglicherweise überlappende Werte aus einer anderen Zeile.

Das Bearbeiten von Zellen funktioniert ebenfalls nicht. Sobald ich eine Zelle bearbeite, werden die Werte nicht mehr im Zelleneditor angezeigt. Ich habe in Firebug eingecheckt, in ist kein Wert<h:outputText> wie durch das generierte HTML bestätigt<div class="ui-cell-editor-output" style="display: none;"></div>. Wie Sie sehen, gibt es innerhalb des div keinen Wert.

Die Backbohne ist@SessionScoped.

Wie entsteht das und wie kann ich es lösen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage