【问题标题】:PrimeFaces data table row count using jQuery使用 jQuery 的 PrimeFaces 数据表行计数
【发布时间】:2015-07-07 03:15:26
【问题描述】:

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

【问题讨论】:

  • 你能添加一些你试过的html cod吗?或者你能创造一个小提琴吗?

标签: javascript jquery jsf primefaces


【解决方案1】:

你可以通过使用datatable的widgetVar变量来实现:

<p:dataTable styleClass="datatable-styleClass"
            widgetVar="datatablewidget"
            ..........
            ..........
/>

数据表渲染后加载脚本:

$(".datatable-styleClass").ready(function() {

   var rowCount = PF('datatablewidget').paginator.cfg.rowCount;
   alert(rowCount);

}); 

【讨论】:

  • @Arul : 你在 之后添加了脚本吗?
  • 谢谢,现在可以使用了。为什么我们可以在p:dataTable之后添加脚本,在添加p:dataTable之前不行?
  • @Arul :因为如果在 p:datatable 之前添加脚本,则尚未生成 p:datatable 的 HTML 元素。
  • @Arul : 如果它的工作则标记为答案,所以其他人可以参考它。
【解决方案2】:

根据文档,有一个属性:

“rowIndexVar - 引用每个行索引的迭代器的名称。”

您只需为此分配一个 var 名称

rowIndexVar="rCount"

至于列,我认为您可以为每个 &lt;p:column&gt; 分配一个固定的列号

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多