DataTables将id添加到新创建的行中的单元格

时间:2016-01-26 17:19:57

标签: jquery datatables

我已经在表的初始化阶段阅读了使用fnCreatedRow,但是这个解决方案对我不起作用,因为我需要在table.row.add阶段添加ID,因为ID I'插入来自我在添加行之前进行的ajax成功调用。

基本上 - 当用户点击我的addRow按钮时,我将请求发送到我的服务器并首先在数据库中创建新行,然后返回该新创建的行的唯一lineID。然后,我想在该表的第一个单元格中使用lineID作为id元素,以便稍后在用户保存页面时引用它。

这是我的功能:

$('#addRow').on( 'click', function () {

  var q         = <?php echo json_encode($q); ?>;
  var d         = $('#d').html();

  $.ajax({
    type: 'POST',
    url: 'addRow.php',      
    data: { q:q, d:d },        
      success:function(data){          
        newRowId = data;
      }
  });

  lastRow++;  
  table.row.add([
    lastRow, /* add id = newRowID to this cell */
    "",
    "",
    "",
    "",
    ""   
  ] ).draw( false );


});  

更新

我找到了添加ID的方法,但我只能在ROW本身上获取,而不是在单元格内:

$.ajax({
    type: 'POST',
    url: 'addRow.php',      
    data: { q:q, d:d },        
      success:function(data){          
        success       = JSON.parse(data);
        uCount        = success[0];
        uLineID       = success[1];

        lastRow++;            
        var newRow = table
            .row.add([
              lastRow,
              "",
              "",
              "",
              "",
              ""   
            ] )
            .draw( )
            .node( );

        $( newRow )
            .eq(0).attr( 'id', uLineID); /* I tried this */
            .attr('id', uLineID);        /* and this, separately */                                        
      }
  });           

1 个答案:

答案 0 :(得分:4)

使用以下代码为新添加的行中的第一个td元素设置ID属性。

var newRow = table.row.add([
   lastRow,
   "",
   "",
   "",
   "",
   ""   
]).draw( false ).node();

$('td:eq(0)', newRow).attr('id', uLineID);

有关详细信息,请参阅row.add()