我有一个 PrimeFaces 按钮,它应该通过 Java 处理数据并将其显示在数据表中。这是代码: <p:dataTable rowIndexVar="rowIndex" var="report" id="TableResult" style="height:685px;width: 97vw;" value="#{reportResultController.resultRows}" resizableColumns="true" scrollable="true" scrollHeight="95%" scrollRows="30" liveScroll="true" lazy="false"/>和按钮呈现表的数据(): <p:commandButton value="Report " action="#{ReportController.produceReport}" id="produce_report" update="TableResult" process="TableResult"/>这是Java部分 public void produceReport() { resultRows = reportResultUtils.runReport(rph, rowsLimit); //Returning List of rows} public List<Object[]> getResultRows() { return resultRows;}数据处理工作正常。问题是,在我为相同的数据按两次按钮的情况下,我第一次看到结果,下次我看到它加倍而不是一次。第一次身份证名称1 大卫2 乔第二次身份证名称1 大卫2 乔1 大卫2 乔第三次和第四次保持它只像第二次一样翻倍。如果我更改参数以获得不同的表,则它会清除表而不是混淆数据。在 resultRows 变量中设置新数据之前,我该怎么做才能只显示一次或删除表中的数据?
1 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
行
原来是PrimeFace的bug。
确实正如@Kukeltje 提到的,问题出在liveScroll="true". 当我删除它时,它起作用了。
因此,解决方法是向RowsDataTable添加与以下大小相同的属性scrollRows:
<p:dataTable rowIndexVar="rowIndex" var="report"
id="TableResult"
style="height:685px;width: 97vw;"
value="#{reportResultController.resultRows}"
resizableColumns="true"
scrollable="true"
scrollHeight="95%"
scrollRows="30"
rows="30" <!-- This is the solution-->
liveScroll="true"
lazy="false"/>
添加回答
举报
0/150
提交
取消