使用<p:datatable lazy =“true”livescroll =“true”> </p:datatable> </p:celleditor> <滚动页面上的<p:rowexpansion>中的值和<p:celleditor>中的空值/ p:rowexpansion>

时间:2014-04-21 10:04:24

标签: jsf primefaces lazy-loading rowexpansion

我在PrimeFaces 4.0中使用JSF 2.2。我有<p:dataTable> live scrollinglazy loadingrow-expansioncell-editing等。

<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,生成的HTML <h:outputText>确认<div class="ui-cell-editor-output" style="display: none;"></div>中没有任何值。如您所见,div内没有任何价值。

  3. 支持bean是@SessionScoped

    这是如何引起的?如何解决?

1 个答案:

答案 0 :(得分:2)

这是PrimeFaces上的一个已知问题,已经在Elite版本中报告并修复(如果我记得很清楚,则为4.0.7)。但社区版本尚未包含此修复程序。 PrimeFaces 5.0有一个包含此修复程序的RC。您可以下载它并测试它是否适合您的需要,但请注意,这只是一个候选版本,而不是最终版本。 AFAIK 5.0决赛的ETA是5月上半月。