我一直在玩 datatables.net,我的表现在从一组 json 对象中加载数据。现在我想做的是当有人单击一行时获取其中一个对象的 ID(只是一个属性),这样我就可以打开一个对话框。
通过使用 fnRowCallback 将 ID 作为属性加载到 TR 元素上,我发现了一种笨拙的机制,但是当对行进行排序时,这会中断。
var tableData = [
{ id: 196402, name: "Joe Bloggs", age: 25, gender: "Male"},
{ id: 257820, name: "Jane Bloggs", age: 22, gender: "Female"},
{ id: 33025, name: "Sam Smith", age: 27, gender: "Female"}
];
oTable = $('#MyTable').dataTable({ "aaData": tableData,
"aoColumns":
[
{"mData": "name"},
{"mData": "age"},
{"mData": "gender"}
],
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
$(nRow).attr('id', aData.id); // this breaks if the grid is sorted!
}
});
$("#MyTable tbody tr").click( function( e ) {
alert($(this).attr('id'));
});
有没有更好的方法来做到这一点?