我正在使用PrimeFaces 5.1。如果有任何方法使用jquery获取DataTable行计数和单元格计数,我尝试获取行计数并将参数传递给另一个函数。我尝试下面的脚本,但它不起作用。
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);
答案 0 :(得分:2)
您可以使用datatable的widgetVar变量来实现:
<p:dataTable styleClass="datatable-styleClass"
widgetVar="datatablewidget"
..........
..........
/>
在数据表渲染后加载脚本:
$(".datatable-styleClass").ready(function() {
var rowCount = PF('datatablewidget').paginator.cfg.rowCount;
alert(rowCount);
});
答案 1 :(得分:0)
根据文档,有一个属性:
&#34; rowIndexVar - 引用每个行索引的迭代器名称。&#34;
您只需为此
指定一个var名称rowIndexVar =&#34; RCOUNT&#34;
至于专栏,我认为你可以根据<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>