2016-08-02 151 views
0

我必须动态添加一行到jquery数据表。问题是,我有几个单元具有data-sort属性。我如何将这些属性添加到添加的行中?jQuery Datatables添加具有数据排序属性的行

<table> 
    <thead> 
     <tr> 
      <th>Name</th> 
      <th>Preis</th> 
     </tr> 
    </thead> 

    <tbody> 
     <tr> 
      <td data-sort="Max Müller">M. Müller</td> 
      <td data-sort="500">5,00 €</td> 
     </tr> 
    </tbody> 
</table> 
table.row.add([ 
    'J. Wayne', // Here I need a data-sort="John Wayne" 
    '6,00 €', // Here I need a data-sort="600" 
]).draw(); 
+0

** [this](http://stackoverflow.com/questions/14286528/data table-dynamic-add-row-with-fnadddata-or-similar-and-add-a-class-to-a-sp)**可能会有帮助。 – mmushtaq

回答

1

的一种简便方法是使用一个createdRow回调,与包含列内容的data-sort属性自动填充所有<td>值:

$('#example').DataTable({ 
    createdRow: function(row, data, dataIndex) { 
    data.forEach(function(str, idx) { 
     $(row).find('td').eq(idx).attr('data-sort', str) 
    }) 
    } 
}) 

据在这里工作 - >http://jsfiddle.net/ea5ayzzb/

+0

听起来不错。我可以在表初始化之后像事件'table.on('draw.dt',myFunction)''那样添加回调吗?我的表格是早先创建的。 –

+0

@DominikBarann,我真的不明白你的意思吗?创建表后,您无法添加回调。但你为什么要这样做? – davidkonrad

+0

问题是,我有一个类'.data-table'。每个具有该类的表都将成为具有某些默认选项的数据表。现在有一个表需要回调,我无法重新启动它,因为它已经被初始化了。 –