私はdatatables.netで遊んでいましたが、テーブルはjsonオブジェクトの配列からデータをロードするようになりました。次に、誰かが行をクリックしたときに、これらのオブジェクトの1つ(プロパティのみ)の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'));
});
これを行うためのより良い方法はありますか?