问题很简单。当使用 datatables
服务器处理的基本初始化时,页面上只显示纯文本。相反,它将数据库列中的内容完全提取到表列中,而无需额外的 HTML 格式。
示例:这是 HTML
和 CSS
格式文本的 img - http://i.imgur.com/li2UMI7.png .表格的每一列都有自己的样式/格式。现在,当 datatables
服务器处理向服务器/数据库发出请求时,结果就像我说的那样,与数据库中的结果完全一样。因此,为了获得如上所示的这种格式,我必须将 HTML 本身放入数据库中。即:
<span class="label label-danger">Tag</span>
或
<span class="label bg-color-greenDark">Category Label</span>
如何格式化从数据库中提取的结果并将其放入页面的表格列中?我宁愿只将 TAG 放在标签列中,而不是将整个标签 HTML 放在标签列中。
有没有办法在点击页面之前拦截结果,格式化它们,然后发布到页面?
代码:
$(document).ready(function() {
$('#example').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "scripts/server_processing.php",
"columnDefs": [ {
"data": "firstname", //this name should exist in you response JSON
"render": function ( data, type, full, meta ) {
return '<span class="label label-danger">'+data+'</span>';
}
} ]
} );
} );
最佳答案
在列中使用 render
选项,如下所示:
$('#example').dataTable( {
"columnDefs": [ {
"targets": 0,//index of column starting from 0
"data": "column_name", //this name should exist in your JSON response
"render": function ( data, type, full, meta ) {
return '<span class="label label-danger">'+data+'</span>';
}
} ]
} );
在此处查看文档:DataTables columns.render .
使用 data
匹配源对象/数组的属性/键。 Read the doc
如果您不使用任何 key ,请使用 targets
。 Read the doc
关于jquery - 如何使用数据表服务器处理来格式化/自定义表列中的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081383/