1

私は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'));
            });

これを行うためのより良い方法はありますか?

4

1 に答える 1

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';
  } );

私はdatatablesが大好きですが、それらを学ぶのにしばらく時間を費やす価値があります...私はまだTBHに行くには長い道のりがあります;-)

お役に立てば幸いです。

D

于 2013-03-22T14:54:31.630 に答える