jQuery DataTables reference显示了一个将rowId
选项设置为数据源(服务器端)列的示例。此设置用于"选择"扩展名和retaining row selection on Ajax reload。
有没有办法生成行标识符值1)客户端,或2)作为数据源中多列的组合?
示例数据来源:
{
"data": [
{
"aid": 5421,
"bid": 4502,
"name": "John Smith"
}
}
代码:
$("#datatable").DataTable({
select: true,
//rowId: "aid" each row ID is the value of the "aid" column
// e.g., <tr id="5421">
//rowId: 0 each row ID is the value of the 0-indexed column
// e.g., <tr id="5421"> (same as above)
rowId: [0, 1] // How? row ID combined value of 2+ columns
// e.g. <tr id="5421-4502">
rowId: "random" // How? random generated client-side ID
// e.g., <tr id="id34e04">
});
答案 0 :(得分:1)
显然,没有办法直接这样做。要解决此问题,您可以使用ajax.dataSrc
选项和/或rowId
选项:
// Example using dataSrc option to manipulate data:
$("#example").dataTable({
ajax: {
url: "data.json",
dataSrc: function (json) {
for (var i = 0, ien = json.data.length; i < ien; i++) {
json.data[i][0] = '<a href="' + json.data[i][0] + '">View Message</a>';
}
}
}
});
答案 1 :(得分:0)
这对我有用:
$("#datatable").DataTable({
...
'createdRow': function(nRow, aData, iDataIndex) {
$(nRow).attr('id', 'row' + iDataIndex); // or if you prefer 'row' + aData.aid + aData.bid
},
...
});
我从question对其进行了更新,它似乎与此副本相同。 createdRow
回调为documented here。