JQuery DataTables-初始化后添加编辑器按钮



我有以下内容,它在初始化时添加了DataTables Editor按钮。

$( '#year_table' ).DataTable( {
responsive: true,
ajax: "program_data/year_data.php",
dom: "Bfrtip",
columns: [ {
data: "year_name"
}, {
data: "modified"
}, {
data: "modified_by"
} ],
select: {
style: 'os',
selector: 'td:first-child'
},
buttons: [ {
extend: "create",
editor: editor
}, {
extend: "edit",
editor: editor
}, {
extend: "remove",
editor: editor
} ]
} );

但是,我想在初始化后根据用户权限添加按钮。

if ( permision == 'create' || permision == 'super' ) {
$( '#year_table' ).DataTable().buttons().add( {
extend: 'create',
editor: editor
} );
}
if ( permision == 'edit' || permision == 'super' ) {
$( '#year_table' ).DataTable().buttons().add( {
extend: 'edit',
editor: editor
} );
}
if ( permision == 'super' ) {
$( '#year_table' ).DataTable().buttons().add( {
extend: 'delete',
editor: editor
} );
}

应该如何更改DataTables初始化以使其工作?

我尝试了以下简单的测试,但没有添加按钮:

var table = $( '#year_table' ).DataTable( {
responsive: true,
ajax: "program_data/year_data.php",
dom: "Bfrtip",
columns: [ {
data: "year_name"
}, {
data: "modified"
}, {
data: "modified_by"
} ],
} );
table.buttons().add( {
extend: 'create',
editor: editor
} );

这在其他人也想要这样做的情况下有效。

var permission = $( '#permission_field' ).val();  
var table = $( '#my_table' ).DataTable( {
responsive: true,
ajax: "program_data/my_data.php",
dom: "Bfrtip",
columns: [ {
data: "name"
}, {
data: "modified"
}, {
data: "modified_by"
} ],
select: {
style: 'os',
selector: 'td:first-child'
},
buttons: []
} );

if ( permission == 'edit' || permission == 'super' ) {
table.button().add( null, {
extend: 'edit',
editor: editor
} );
}

最新更新