jQuery Datatables根据条件更改列的值

我有Datatables工作正常。 不过,我想稍微调整一下。 正如你所看到的,我有这样的情况:

if ( data.status == 0 )

这意味着如果status等于零,我会使文本颜色变成红色,否则就变成绿色。 不过,我也想改变data.status的文本data.status它是01 。 如何使文本显示为Pending如果为零,并且Approved 1。

<script>
    $(document).ready(function(){
        $('#LeaveList').DataTable({
            processing: true,
            serverSide: true,
            ajax: 'leave-list',
             "createdRow": function ( row, data, index ) {
                if ( data.status == 0 ) {
                    $('td', row).eq(6).addClass('text-danger');
                }
                else
                {
                    $('td', row).eq(6).addClass('text-success');
                }
            },
            columns: [
                {data: 'id', name: 'id'},
                {data: 'employee_name', name: 'employee_name'},
                {data: 'employee_id', name: 'employee_id'},
                {data: 'from_date', name: 'from_date'},
                {data: 'to_date', name: 'to_date'},
                {data: 'leave_type', name: 'leave_type'},
               // {data: 'department', name: 'department'},
                {data: 'status', name: 'status'},
                {data: 'created_at', name: 'created_at'},
                {data: 'action', name: 'action', orderable: true, searchable: true}
            ]
        });

    }); 
    </script>   

我想在这个jquery部分不是在查询数据


你可以使用fnCreateCell来修改你的数据。

    $(document).ready(function(){
    $('#LeaveList').DataTable({
        processing: true,
        serverSide: true,
        ajax: 'leave-list',
        columns: [
            {data: 'id', name: 'id'},
            {data: 'employee_name', name: 'employee_name'},
            {data: 'employee_id', name: 'employee_id'},
            {data: 'from_date', name: 'from_date'},
            {data: 'to_date', name: 'to_date'},
            {data: 'leave_type', name: 'leave_type'},
           // {data: 'department', name: 'department'},
            {data: 'status', name: 'status',
            "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {

                   if (sData) {
                         $(nTd).addClass('text-success');
                   }else{
                         $(nTd).addClass('text-danger'); 
                   }
                }               
            },
            {data: 'created_at', name: 'created_at'},
            {data: 'action', name: 'action', orderable: true, searchable: true}
        ]
    });

}); 

假设您的当前代码正常工作。 那么你只需要像这样修改createdRow部分:

...
createdRow: function ( row, data, index ) {
  if ( data.status == 0 ) {
    $('td', row).eq(6).addClass('text-danger').text('Pending');
  } else {
    $('td', row).eq(6).addClass('text-success').text('Approved');
  }
},
...

但是,正如markpsmith指出的那样,更简洁的方法是使用render选项。 你可以在这里阅读有关columns.render

链接地址: http://www.djcxy.com/p/31033.html

上一篇: jQuery Datatables change value of a column based on condition

下一篇: How to display entire table tr in different color based on data