使用jQuery计算PrimeFaces数据表的行数



我使用的是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>

相关内容

  • 没有找到相关文章