单击时选择DataTables行

时间:2013-03-22 14:35:24

标签: jquery datatables

我一直在玩datatables.net,我的表现在从json对象数组中加载数据。现在我想要做的是当有人点击一行时抓取其中一个对象的ID(只是一个属性),这样我就可以打开一个对话框。

我发现了一种kludgy机制,它使用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'));
            });

有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

来自:http://www.datatables.net/api

$('#example tbody td').click( function () {
    // Get the position of the current data from the node
    var aPos = oTable.fnGetPosition( this );

    // Get the data array for this row
    var aData = oTable.fnGetData( aPos[0] );

    // Update the data array and return the value
    aData[ aPos[1] ] = 'clicked';
    this.innerHTML = 'clicked';
  } );

我喜欢数据表,但是真的值得花一些时间学习它们......我还有很长的路要走TBH; - )

希望有所帮助。

d