如何在Primefaces中计算p:dataTable的行数?

3

我是Primefaces的新手。

我正在使用Primefaces 5.1和jsf 2.2开发一个项目。

我不知道如何计算p:dataTable中的行数?

我需要根据行数设置饼图。

有什么想法吗?


你想从Javascript还是从Java ManagedBean访问行数? - Kishor Prakash
@Kishor P,我需要使用Javascript访问行数。 - user4907098
4个回答

4
你需要做的是在你的 p:datatable 中设置一个 widgetVar
<p:dataTable value="#{tableBean.myTable}" widgetVar="myTable">...</p:dataTable>

然后您可以使用它轻松从Javascript中访问您的表

要计算您的表中的行数

PF('myTable').tbody[0].children.length

或者,如果您正在使用分页器。
PF('myTable').cfg.paginator.rowCount

0
如果“行数”表示从后端bean返回到视图的数据集数量,那么您应该通过添加另一个getter来计算后端bean中的行数,例如:number of rows
public int getNumberOfRows() {
  return this.myDataTableList.size();
}

如果你所说的“行数”是指在我的 p:datatable 中当前可见的数据量,并且你使用了一个 paginator,那么答案就是你选择初始化datatable时的相同数字(除了最后一页可能)。

如果你想在客户端访问行数,你必须使用类似这样的东西:

$("#YOUR_DATATABLE_ID").find(".ui-datatable-tablewrapper").find(".ui-datatable-data").find(".ui-widget-content").length

但这只会显示当前可见的行(如果您正在使用分页器)。如果您想获取所有行并使其更容易,可以像上面所示,在后端bean中让行数可访问。


谢谢您的帖子...但是,我需要使用Javascript访问行数。 - user4907098
Manuel@,感谢您的回复,但这对我没有用...它总是只给出大小为0的结果,但在我的表中有三行... - user4907098
什么不准确?如果您能创建一个jsfiddle,那将更容易帮助您。(再次强调,在JS中完成并不是最好的方式) - Manuel

0

如果有人仍然需要此功能,只是为了显示目的。从版本5开始,您在分页器模板中拥有所谓的{CurrentPageReport}元素。它允许通过搜索“currentPageReportTemplate”在Primefaces文档中进行自定义,它有点隐藏:) {{link1:Primefaces 5.1 Docu}}

使用{totalRecords},您可以输出表中记录的数量。它还可以与活动过滤器一起使用。这是一个例子:

<p:dataTable var="entry" value="#{mbvHandler.entries}"
      widgetVar="carsTable" id="carsTable"
      scrollable="true" scrollWidth="100%"
      filteredValue="#{mbvHandler.filteredEntries}"
      rows="25" paginator="true" resizableColumns="true"
      paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown} {Exporters}"
      currentPageReportTemplate="{currentPage} of {totalPages} ({totalRecords})"
      rowsPerPageTemplate="10,15,25,50">

0
要获取datatable的行数,只需使用Java内置的“size()”方法。
<p:dataTable value="#{tableBean.myTable}">...</p:dataTable>

<h:outputText value="#{tableBean.myTable.size()}"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接