4

PrimeFaces 4.0 で JSF 2.2 を使用しています。ライブスクロール遅延読み込み<p:dataTable>行拡張セル編集などがあります。

<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>

最初のページでは、すべてが魅力のように機能します。下にスクロールすると、データは完全に問題なく遅延ロードされますが、行の拡張とセルの編集中にいくつかの問題があります。

  1. 行の拡張で、間違った値を取得しています。他の行の値が重複している可能性があります。

  2. セル編集も機能していません。セルを編集すると、値がセルエディターに表示されません。Firebug をチェックインしまし<h:outputText>たが、生成された HTML で確認された値がありません<div class="ui-cell-editor-output" style="display: none;"></div>。ご覧のとおり、div 内には値がありません。

バッキング Bean は@SessionScoped.

これはどのように発生し、どうすれば解決できますか?

4

1 に答える 1

2

これは PrimeFaces の既知の問題であり、Elite バージョン (よく覚えていれば 4.0.7) で既に報告され、修正されています。ただし、コミュニティ リリースにはまだこの修正が含まれていません。この修正を含む PrimeFaces 5.0 の RC があります。ダウンロードして、ニーズに合っているかどうかをテストできますが、これはリリース候補にすぎず、最終リリースではないことに注意してください。私の知る限り、5.0 ファイナルの ETA は 5 月前半です。

于 2014-04-22T10:21:07.423 に答える