jQuery DataTable在动态添加行后向TR元素添加ID

11
我正在使用以下代码来初始化 DataTable:

    $('#table-groups').dataTable( {
    "bJQueryUI": true,
    "sPaginationType": "full_numbers",
    "bFilter": false,
    "bInfo": false,
    "aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
    "aoColumns": [
     { "sClass": "name" },
     { "sClass": "tools", "bSortable": false},
     ],     
    });

现在,我正在使用服务器端脚本添加行,类似于这样:

$('#table-groups').dataTable().fnAddData( ["<strong>"+$_returnvalue.name+"</strong>","<div class=\"cell edit\"> Group ID is: "+$_returnvalue.entryid+" </div>"]);   

我的问题是:是否有一种方法可以将$_returnvalue.entryid的值插入到<tr>标签中作为ID
3个回答

43
你可以使用 fnCreatedRow 回调函数。
在此回调函数中,你可以使用像 aData[0] 这样的语法,其中 aData[0] 必须是 id。
$('#example').dataTable( {
    "fnCreatedRow": function( nRow, aData, iDataIndex ) {
        $(nRow).attr('id', aData[0]);
    }
});

Demo: Fiddle


你的解决方案是动态创建/填充DataTable的最佳解决方案。非常感谢。附言:也许在属性ID前加上“行”。 - iWizard

5
 var MyUniqueID = "tr123"; // this is the uniqueId.
    var rowIndex = $('#MyDataTable').dataTable().fnAddData([ "column1Data", "column2Data"]);
    var row = $('#MyDataTable').dataTable().fnGetNodes(rowIndex);
    $(row).attr('id', MyUniqueID);

1
您在此处没有使用服务器端数据表。这个答案可能会帮助那些正在使用服务器端数据表并试图放置基于数据库数据的唯一ID的人。
您只需通过此键发送ID: DT_RowId (作为响应从服务器端发送)。它不需要在前端进行任何更改。有关更多详细信息,请参阅以下链接: https://datatables.net/examples/server_side/ids.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接