Skip to content

Commit f3a24c0

Browse files
committed
Adding ability to customize width, class name and content of the checkbox column
1 parent 3ee4cae commit f3a24c0

File tree

2 files changed

+26
-22
lines changed

2 files changed

+26
-22
lines changed

js/dataTables.checkboxes.js

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -131,31 +131,35 @@ Checkboxes.prototype = {
131131

132132

133133
//
134-
// WORKAROUNDS:
134+
// OPTIONS
135135
//
136-
// DataTables doesn't support natively ability to modify settings on the fly.
137-
// The following code is a workaround that deals with possible consequences.
138-
139-
DataTable.ext.internal._fnApplyColumnDefs(ctx, [{
140-
'targets': i,
141-
'searchable': false,
142-
'orderable': false,
143-
'width':'1%',
144-
'className': 'dt-body-center',
145-
'render': function (data, type, full, meta){
146-
if(type === 'display'){
147-
data = '<input type="checkbox" class="dt-checkboxes">';
148-
}
149-
return data;
150-
}
151-
}], {}, function (iCol, oDef) {
152-
DataTable.ext.internal._fnColumnOptions( ctx, iCol, oDef );
153-
});
154136

155-
// Remove "sorting" class
137+
var colOptions = {
138+
'searchable': false,
139+
'orderable': false
140+
};
141+
142+
if(ctx.aoColumns[i].sClass === ''){
143+
colOptions['className'] = 'dt-body-center';
144+
}
145+
146+
if(ctx.aoColumns[i].sWidthOrig === null){
147+
colOptions['width'] = '1%';
148+
}
149+
150+
if(ctx.aoColumns[i].mRender === null){
151+
colOptions['render'] = function(){
152+
return '<input type="checkbox" class="dt-checkboxes">';
153+
};
154+
}
155+
156+
DataTable.ext.internal._fnColumnOptions(ctx, i, colOptions);
157+
158+
159+
// WORKAROUND: Remove "sorting" class
156160
$colHeader.removeClass('sorting');
157161

158-
// Detach all event handlers for this column
162+
// WORKAROUND: Detach all event handlers for this column
159163
$colHeader.off('.dt');
160164

161165

0 commit comments

Comments
 (0)