我使用的是PrimeFaces 5.1。如果有任何方法获得数据表行计数和单元格计数使用jquery,因为我尝试获得行计数和传递参数到另一个函数。我尝试下面的脚本,但它不工作。
1) alert("Rows = " + ($('#TestSubview:testForm:test table tbody tr:last').index() + 1));
2) var datatable=jQuery("#TestSubview:testForm:test");
alert(dataTable.tBodies[0].rows.length);
3)alert($('#'+dataTableId+' tbody tr').length);
可以通过使用datatable的widgetVar变量来实现:
<p:dataTable styleClass="datatable-styleClass"
widgetVar="datatablewidget"
..........
..........
/>
在数据表呈现后加载脚本:
$(".datatable-styleClass").ready(function() {
var rowCount = PF('datatablewidget').paginator.cfg.rowCount;
alert(rowCount);
});
根据文档,有一个属性:
"rowIndexVar -引用每个行索引的迭代器名称。"
你只需为这个
分配一个变量名rowIndexVar = " rCount "
对于列,我认为您可以为每个<p:column>
分配固定的列号
<p:dataTable value="#{Bean.test}" var="t" rowIndexVar="rCount">
<p:column headerText="Count">
<h:outputText value="#{rCount}"/>
</p:column>
<p:column headerText="Value">
<h:outputText value="#{t}"/>
</p:column>
<p:column>
<p:commandButton actionListener="#{Bean.test(rCount,3)}"/>
</p:column>
<p:column>
<p:commandButton actionListener="#{Bean.test(rCount,4)}"/>
</p:column>
</p:dataTable>