Jsf primefaces dataTable lazy liveScroll工作不正常

Jsf primefaces dataTable lazy liveScroll工作不正常,jsf,jsf-2,primefaces,datatable,Jsf,Jsf 2,Primefaces,Datatable,当使用primefaces dataTable并启用liveScroll与惰性数据模型结合使用时,我出现了一些意外行为。让我先展示一下这个例子,以说明存在什么样的问题 我创建了primefaces showcase代码的一个小替代方案。这是网页: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3

当使用primefaces dataTable并启用liveScroll与惰性数据模型结合使用时,我出现了一些意外行为。让我先展示一下这个例子,以说明存在什么样的问题

我创建了primefaces showcase代码的一个小替代方案。这是网页:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets"
  xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui">
<h:head />
<body>
  <h:form id="form" style="width:300px;height:300px">
    <p:dataTable id="carTable" var="car" value="#{carBean.carTableModel}" scrollable="true" lazy="true"
      scrollHeight="200" scrollRows="10" liveScroll="true" rowKey="#{car.id}">
      <p:column headerText="Id">
        <h:outputText value="#{car.id}" />
      </p:column>
      <p:column headerText="Brand">
        <h:outputText value="#{car.brand}" />
      </p:column>
      <p:column headerText="Action">
        <h:commandButton value="Go!" action="#{carBean.go(car)}" update="goneCar" />
      </p:column>
    </p:dataTable>
    <h:outputText id="goneCar" value="Last car gone: #{carBean.goneCar.id} #{carBean.goneCar.brand}" />
  </h:form>
</body>
</html>
下一步我点击第一个去!按钮我看到下面的内容,其中调用getRowCount的次数让我感到困扰,但“使用0”是正确的,但是这里实际上不需要刷新页面0 10

getRowCount
getRowCount
getRowCount
go with 0
refresh page 0 10
getRowCount
getRowCount
我滚动到表中的最后一个元素,然后加载下一页,共10项

refresh page 10 10
看起来不错。现在我点击按钮去!id==6的行的数目。这在日志记录中:

getRowCount
getRowCount
getRowCount
go with 16
refresh page 0 10
getRowCount
getRowCount
这是错误的。16岁应该是6岁。现在它还从0加载项目,长度==10,再次加载第一页。再次单击同一按钮,现在将显示:

getRowCount
getRowCount
getRowCount
go with 6
refresh page 0 10
getRowCount
getRowCount
这很好,但是刷新也不是很有效。同样错误的是,表格现在显示第0行直到第9行,然后再显示第0行直到第9行

有人能解释一下我的代码有什么问题吗?我使用primefaces-5.2。如何以可靠的方式使用livescroll和lazy(分页)模型


非常感谢

试过PF5.3吗?(试一下,不要在生产中使用,只是想看看它是否被修复)我试过PF5.3,我觉得它的行为是一样的。
refresh page 10 10
getRowCount
getRowCount
getRowCount
go with 16
refresh page 0 10
getRowCount
getRowCount
getRowCount
getRowCount
getRowCount
go with 6
refresh page 0 10
getRowCount
getRowCount