var data = [
{
"name": "Tiger Nixon",
"position": "System Architect",
"salary": "$320,800"
},
{
"name": "Garrett Winters",
"position": "Accountant",
"salary": "$170,750"
}
];
$(document).ready( function () {
// Initial state
var g_stateInitial = true;
var table = $('#example').DataTable({
"data": data,
"columns": [
{ "data": "name"},
{ "data": "position" },
{ "data": "salary"},
{
"data": null,
"searchable":false,
"render": function(data, type, row, meta){
var state = (data.hasOwnProperty('state')) ? data.state : g_stateInitial;
if(type === "display"){
return (state) ? '<div class="success">OK</div>' : '<div class="failure">NO</div>';
} else {
return state;
}
}
},
{
"data": null,
"searchable":false,
"render": function(data, type, row, meta){
if(type === "display"){
return '<button type="button" class="btn-toggle">Toggle</button>'
}
return data;
}
}
]
});
$('#example tbody').on('click', '.btn-toggle', function(){
var $row = $('#example').DataTable().row($(this).parents('tr'));
var data = $row.data();
data.state = (data.hasOwnProperty('state')) ? !data.state : !g_stateInitial;
$row
.data(data)
.invalidate()
.draw(false);
});
});
.success {
color:#009900;
}
.failure {
color:#990000;
}
<script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
<link href="//cdn.datatables.net/1.10.7/css/jquery.dataTables.css" rel="stylesheet" />
<script src="//cdn.datatables.net/1.10.7/js/jquery.dataTables.js"></script>
<table id="example" class="display" width="100%">
<thead>
<tr>
<th>Name</th>
<th>Position</th>
<th>Salary</th>
<th>State</th>
<th></th>
</tr>
</thead>
</table>