jQuery Datatables rowGroup

时间:2017-07-04 11:30:44

标签: php jquery html datatables html-table

我正在使用带有rowGroup插件的jQuery datatables插件。

我需要使用'startRender'功能在每个组的'标题'中显示一些信息。

链接:

数据表:https://datatables.net/

RowGroup插件:https://datatables.net/extensions/rowgroup/examples/initialisation/startAndEndRender.html

但问题是,我无法读取行tr Id来获取所需的数据。

如何访问startRender函数中的行Id以传递组标题中的数据?

这就是我的jQuery rowGroup:

rowGroup: {
    dataSrc: 1,
    startRender: function ( rows, group ) {
        var kundenId = table.row( this ).index();
        var kundenDomainAnzahl = 1;
        var kundenMaxDomainAnzahl = 2;
        return group +' ( '+ kundenDomainAnzahl +' / '+ kundenMaxDomainAnzahl +' / '+ kundenId + ')';
    }
}

我的表格由PHP变量填充, 但一般来说,行看起来像这样:

<tr id="number">
    <td>Name</td>
    <td>Type</td>
    <td>Age</td>
</tr>

1 个答案:

答案 0 :(得分:1)

startRender rows实际上是一个dataTables API,其中包含与group匹配的行。因此,直接在rows上工作,不需要通用表API。

要获取<tr>个ID,请循环rows并抓住idnodes()。示例:

startRender: function ( rows, group ) {
  var ids = '';
  rows.every(function() {
    if (ids.length) ids+=', ';
    ids+=this.nodes().to$().attr('id'); 
  })
  return 'test id´s : ' + ids;
}

记下这个或多或少对应于你面临的问题的演示 - &gt;的 http://jsfiddle.net/0x6m94ha/

<强>更新即可。使用数组和join()以防止重复的ID:

startRender: function ( rows, group ) {
  var ids = [];
  rows.every(function() {
    var id = this.nodes().to$().attr('id');
    if (!~ids.indexOf(id)) ids.push(id);
  })
  return 'test id´s : '+ ids.join(', ');
}

演示 - &gt;的 http://jsfiddle.net/0x6m94ha/1/