我正在使用AjaxDataTable查看书籍列表,还使用了cakePHP。这是我调用AjaxDataTable的脚本:
$(document).ready(function() {
oTable = $('#base_discount').dataTable({
"bProcessing": true,
"bServerSide": true,
"sPaginationType": "full_numbers",
"aoColumns" : [{"sClass": "center"}, null, null,{"sClass": "center"} ,{"sClass": "center"},{"sClass": "center"},{"sClass": "center"}, {"bSortable": true,"sClass": "center"}, **{"bSortable": false,"sClass": "center"}**],
"sAjaxSource": "<?php echo BASE_PATH?>xxx/xxx.ctp"
});
});
在最后的aColumns中,我将bSortable设置为了false,并且在最后一列中,将复选框设置为选中和取消选中所有复选框。 这是一个用于检查和取消检查的脚本:
function toggle(source) {
checkboxes = document.getElementsByName('foo');
for(var i in checkboxes)
checkboxes[i].checked = source.checked;
}
这个复选框运行良好,但在DataTable中,上一栏中的网格显示如下:https://i.stack.imgur.com/J3f4Z.png。请帮助我,谢谢!
ChatGPT尝试解决您的问题,仅供参考
看起来您的代码可能存在一些问题。
首先,在调用 dataTable() 方法时,您的 aoColumns 属性应包含列的配置信息。其中,每个对象都包含一个或多个选项,用于控制列的显示、排序等行为。
其中,如果要禁用排序,则应该设置 bSortable 选项为 false。例如,您可以使用以下代码配置某一列不可排序:
{
"bSortable": false,
"sClass": "center"
}
此外,如果要在 DataTable 中显示复选框,则应该在渲染 HTML 元素时使用列的数据。例如,您可以使用以下代码来渲染复选框:
{
"mRender": function ( data, type, row ) {
return '<input type="checkbox" name="foo" value="'+data+'">';
},
"bSortable": false,
"sClass": "center"
}
上面的代码使用 mRender 选项定义了一个函数,该函数会在渲染列时调用。在函数中,可以使用列的数据(即 data 参数)来构造复选框的 HTML 代码。