在DataTables 1.10.x中设置td id / name的问题

时间:2015-05-29 18:56:10

标签: javascript jquery datatables

这与数据表1.10.x有关。

我使用this引用来创建子行,并且很容易将HTML放入已经生成的javascript代码中,如下所示:

function format ( d ) {
    return '<div class="slider">'+ 
    '<table id="expandInput" cellpadding="5" cellspacing="0" border="0" style="margin: 0 auto;">'+                
        '<tr>'+
            '<td class="dropHeader">Cost</td>'+
            '<td class="dropInfo"><input required type="text" id="cost" name="cost" value="'+d.cost+'"></input></td>'+                
        '</tr>'+                       
    '</table>'+
   '</div>'; 
}

但这只会影响点击后生成的孩子。我不知道如何使用标准数据表语法为数据表本身生成的单元格创建idname。我能在数据表中找到的唯一例子&#39;网站涉及使用服务器端创建id

var table = $('#ltc-table').DataTable( {    
    "data" : json,        
    "columns" : [
      { data : 'cost' },
      { data : 'resale' }
  ],
  "columnDefs": [
  { className: "details-control", "targets": [ 0 ] }
  ]
});

我知道我可以使用td设置一个columnDefs的课程,如here所示,但我无法弄清楚如何添加其他标准,我需要为每个被处理的td设置唯一的idname

2 个答案:

答案 0 :(得分:8)

您需要使用createdRow属性来定义每次为表格主体创建TR元素时的回调。

$('#example').dataTable( {
   "createdRow": function ( row, data, index ) {
      $('td', row).eq(1).attr('id', 'td-' + index + '-1');
   }
});

代码$('td', row).eq(1)用于使用从零开始的索引(1为第二个单元格)选择表格行中的第二个单元格。代码attr('id', 'td-' + index + '-1')会将第一行的id个单元格设置为td-0-1,第二行的td-1-1等等,其中index是基于零的行索引

请参阅this JSFiddleRow created callback example进行演示。

答案 1 :(得分:0)

在我的情况下,它与“ rowData”一起使用。一些代码:

$('#example').dataTable({
    "columnDefs": [{
        'targets': [4], 'createdCell': function (td, cellData, rowData, row, col) {
            td.id = "ID_For_TD_" + rowData.ObjId;
        }
    }],
});