4

私はこの投稿に従いました:DataTable:ASP.Netでのサーバー側処理
このコードを使用してDataTableを初期化します:

<script type="text/javascript">
    $(function () {
        $('#example').dataTable({
            'bProcessing': true,
            'bServerSide': true,
            'sAjaxSource': '/data.ashx'
        });
    });
</script>

私のJSONは次のようなものです:

{    
 "iTotalRecords": "57",
 "iTotalDisplayRecords": "57",
 "aaData": [
  [
     "id001",
     "Name001",
     "Addr001",
  ],
  [
     "id002",
     "Name002",
     "Addr002",
   ]
  ]
}

私は以下と同じことを達成したい:

<table id="datatable">
   <thead>...</thead>
   <tbody>
     <tr id="id001">
        <td>Name001</td>
        <td>Addr001</td>
     </tr>
     <tr id="id002">
        <td>Name002</td>
        <td>Addr002</td>
     </tr>

     .
     .
   </tbody>
 </table>

注:
使用 しているIDを割り当てるに<tr>は:

"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull) {
     $(nRow).attr("id",aData[0]);
     return nRow;
}

IDしかし、それはコラムを隠しているのではありません。助けてください。

更新: 問題の完璧な解決策を見つけました。
以下のようにJSONを作成する必要があります

 {    
 "iTotalRecords": "57",
 "iTotalDisplayRecords": "57",
 "aaData": [
  [         
     "0":"Name001",
     "1":"Addr001",
     "DT_RowId": "id001",
  ],
  [        
     "0":"Name002",
     "1":"Addr002",
     "DT_RowId": "id002",
   ]
  ]
}

詳細については、次のリンクを確認してください。DateTable-行IDの自動追加

4

1 に答える 1

5

列を非表示にするために使用aoColumnDefsします。Datatablesの例

$('#datatable').dataTable({
    aaData: aaData,
    "fnRowCallback": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) {
        //console.log(nRow);

        $(nRow).attr("id", aData[0]);
        return nRow;
    },
    "aoColumnDefs": [
        {
        "bSearchable": false,
        "bVisible": false,
        "aTargets": [0]
        },
    ]
});​

ワーキングフィドル

于 2012-10-25T06:19:19.467 に答える