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隐藏列。数据表示例

$('#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 回答