jQuery datatable根据返回的数据添加自定义TR

时间:2017-07-11 18:20:31

标签: javascript jquery html datatable

我有一个jQuery的数据表,它充满了这样的服务器端数据:

    "columns": [
                      {
                          "targets": -1,
                          "data": "ImageURL",
                          "name": "Title",
                          "render": function (data, type, row) {
                              return '<td><div class="tableimage"><img src="' + data + '"/></div></td>';  //'<td><img src=' + data + '></td>';
                          }
                      },
               {
                   "data": "Title",
                   "name": "Title",
                   "render": function (data, type, row) {

                       return '<td>' + data + '</td>';
                   }
               },
                   {
                       "data": "CurrentPrice",
                       "name": "CurrentPrice",
                       "render": function (data, type, row) {

                           return '<td>$ ' + data + '</td>';
                       }
            },
  ]

这很好,每列都会在我的浏览器中生成并呈现,如下所示:

<tr>
// generated td's here...
<tr>

现在我的问题是我是否可以使用特别添加的类生成自定义tr标签?

这样的事情:

<tr class="myclassNameGoesHere">
</td>

这是否可以通过服务器端数据处理&amp; jquery的数据表?

P.S。我试过这样的事情:

$(row).addClass("alert-danger");
 // or                              
row.className = "alert-danger";

但这些都不起作用......:/

1 个答案:

答案 0 :(得分:0)

首先,您不需要在渲染函数中返回td标记,数据表会自动为您创建td标记。

所以,

return '<td>' + data + '</td>'; 

会变成

 return data;

现在,要回答您的问题,请使用数据表提供的createdRow回调。

像,

$('#example').dataTable( {
  "createdRow": function( row, data, dataIndex ) {
      $(row).addClass( 'alert-danger' );
  }
} );