我正在使用jQuery DataTables和TableTools扩展来显示表头中的按钮。但是当满足某些条件时,是否有显示按钮的选项?
我的表初始化代码如下所示:
projectsTable = $('#projects_table').DataTable({
"dom": '<"cleaner">lf<"cleaner">T<"cleaner"><"cleaner">rtip',
"stateSave": true,
"data":tableData,
"bSortCellsTop": true,
"responsive": true,
"autoWidth": false,
"tableTools":{
"aButtons": [
{
"sExtends": "text",
"sButtonText": "New project",
"fnClick": function (mButton, oConfig, oFlash){
addProjectDialog();
}
},{
"sExtends": "text",
"sButtonText": "Reset all filters",
"fnClick": function (mButton, oConfig, oFlash){
resetAllFilters();
}
}
]
}
});
我希望仅在用户具有正确权限时才显示“新建项目”按钮。这有可能吗?
答案 0 :(得分:0)
由于aButtons
是一个数组,因此可以解决这个问题,如下所示:
var canUserCreateProjects = true;
// DataTables TableTools buttons options
var aButtonsData = [];
// If user can create projects
if(canUserCreateProjects){
aButtonsData.push({
"sExtends": "text",
"sButtonText": "New project",
"fnClick": function (mButton, oConfig, oFlash){
addProjectDialog();
}
});
}
aButtonsData.push({
"sExtends": "text",
"sButtonText": "Reset all filters",
"fnClick": function (mButton, oConfig, oFlash){
resetAllFilters();
}
});
// Initialize DataTable
var projectsTable = $('#projects_table').DataTable({
"dom": '<"cleaner">lf<"cleaner">T<"cleaner"><"cleaner">rtip',
"stateSave": true,
"data":tableData,
"bSortCellsTop": true,
"responsive": true,
"autoWidth": false,
"tableTools": {
"aButtons": aButtonsData
}
});