0
在我的应用程序中,有一些列被授予特权。 如果没有给出该列访问该特定列的权限未显示。jQuery DataTables中的动态列
我的代码是这样的:http://jsfiddle.net/oscar11/5jccbzdy/11/
// DataTable
var table = $('#example').DataTable({
"order": [[0, 'asc']],
"drawCallback": function (settings){
var api = this.api();
// Zero-based index of the column containing names
var col_name = 0;
// If ordered by column containing names
if (api.order()[0][0] === col_name) {
var rows = api.rows({ page: 'current' }).nodes();
var group_last = null;
api.column(col_name, { page: 'current' }).data().each(function (name, index){
var group = name;
var data = api.row(rows[index]).data();
if (group_last !== group) {
$(rows[index]).before(
'<tr class="group" style="background-color:' + data[4] + '"><td colspan="5">' + group + '</td></tr>'
);
group_last = group;
}
});
}
}
});
如何使上面的代码变得更具活力和调整被赋予特权的列数?
如果被赋予特权的列数:5,那么:
'<tr class="group" style="background-color:' + data[4] + '"><td colspan="5">' + group + '</td></tr>'
如果被赋予特权的列数:3,则:
'<tr class="group" style="background-color:' + data[2] + '"><td colspan="3">' + group + '</td></tr>'
谢谢
谢谢你回答我的问题。我仍然困惑。我试过上面的代码。我将列“渲染引擎”更改为第三列。例如,列“引擎”没有被赋予访问权(如果没有权限访问该列将丢失)。我试过这样的代码:[link](http://jsfiddle.net/oscar11/5qtoyunq/1/)。 虽然其他列(列“引擎”)没有被赋予访问权限(被删除),我怎样才能使该分组列固定列“渲染引擎”? –
@mosestoh,增加了更多细节并更新了示例。您可以在'columnDefs'部分指定包含组和颜色的列的索引。然后,'drawCalback'中的代码将使用名称'group'和'color'来检索这些索引,而不是对它们进行硬编码。 –
谢谢你Gyrocode.com。但是我仍然很难实现我的问题。你尝试看看这里:[链接](http://jsfiddle.net/oscar11/5qtoyunq/1/)。尽管其他列(列“引擎”)没有被赋予访问权限(被删除),我怎样才能使该分组列固定列“渲染引擎”?我的意思是喜欢它。 –