将数据方法添加到jquery数据表

时间:2014-08-26 10:07:21

标签: jquery jquery-datatables

我已将表行动态添加到jquery数据表中,如下所示

var addId = $('#data-table').dataTable().fnAddData([
                        this.AreaName,
                        this.RSPName,
                        this.DsrName,
                        this.DSRMSISDN,
                        this.Name,
                        status
                        ]);

现在我想将一些信息(这里是这个变量)存储到tr节点,比如$(' tr')。data(' trdata',this)。如何做到这一点?

1 个答案:

答案 0 :(得分:0)

以下示例适用于数据表 1.9.x 1.10.x (旧API)。

如您所知,fnAddData返回新插入行的ID。此id不能与jQuery一起使用,因为jQuery结果基于表在DOM中的呈现方式(分页和排序行#id很可能不在位置#id)。您可以通过API方法<tr>获取与#id相关联的fnSettings().aoData[..].nTr,并通过该方法将数据添加到<tr>正确。 addRow函数可能如下所示:

function addRow(this_) {
  //add the row  
  var addId = table.fnAddData([
     this_.AreaName,
     this_.RSPName,
     this_.DsrName,
     this_.DSRMISSION,
     this_.Name  
  ]);    
  //get the newly inserted TR and add this_ as trdata
  var tr = table.fnSettings().aoData[addId].nTr;
  $(tr).data('trdata', this_);  
}

您可以测试trdata - 对象是否以这种方式正确添加:

$('#example tbody tr').on('click', function() {
    if ($(this).data('trdata')) alert('has trdata');
});

参见演示 - &gt;的 http://jsfiddle.net/6mtdj3xL/