使用jQuery的PrimeFaces数据表行数

时间:2015-07-07 03:15:27

标签: javascript jquery jsf primefaces

我正在使用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);

2 个答案:

答案 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>