gpt4 book ai didi

javascript - DataTables - stateSaveCallback 和点击激活的其他功能

转载 作者:行者123 更新时间:2023-11-30 11:27:34 30 4
gpt4 key购买 nike

如何实现 stateSaveCallback/"colReorder"/"buttons": ['colvis'] 在用户点击按钮时启用?

基本上,我需要用户只有在单击编辑按钮时才能够编辑数据表,并且当他按下保存按钮时才能保存更改...如果用户没有按下保存按钮则没有更改将被保存,如果他不点击编辑按钮,他将无法进行任何更改...有什么想法如何做到这一点?

目前我的数据表有以下代码。

$('#resultsTable').DataTable({
"stateSave": true,
// "serverSide": true,

// Rows per page
"lengthMenu": [
[25, 50, 100, 150, 200, 250, -1],
[25, 50, 100, 150, 200, 250, "All"]
],
"dom": '<"top"Bfi>rt<"bottom"lp><"clear">', // Show entries on bottom

// Scrolling table
"scrollY": 600, // Constrain the DataTable to the given height
"deferRender": true, // Elements will be created only when the are required
"scroller": true, // Enable vertical scrolling in DataTables
"scrollX": true, // Scroll horizontal
"colReorder": true, // Column reordering
"buttons": ['colvis'], // Enable column visibility button

// Grouping table
"columnDefs": [{ "visible": false, "targets": 0 }], // Mades target column hidden // if commented ---> Uncaught TypeError: Cannot read property 'style' of undefined
"order": [
[0, 'asc']
], // Sorting based on column
'stateSaveParams.dt': function(e, settings, data) {
data.search.search = "";
// table.columns.visible();
},

// SaveState
'stateSaveCallback': function(settings, data) {
$.ajax({
'url': 'saveDtableState.php',
'data': { name: 'resultsTable', 'state': data },
'dataType': 'json',
'method': 'POST',
"success": function() {},
error: function(xhr, ajaxOptions, thrownError) {
console.log(thrownError);
}
});
},
'stateLoadCallback': function(settings, callback) {
$.ajax({
'url': 'loadDtableState.php',
'data': { name: 'resultsTable' },
'dataType': 'json',
'type': "POST",
success: function(data) {
callback(data);
console.log('test: ' + data);
},
error: function(xhr, ajaxOptions, thrownError) {
console.log(thrownError);
}
});
}
})

如果我使用它会起作用吗?

$('#saveEdit').on("click", function(){
table.state.save();
});

或者它会在我每次进行更改时继续保存表的状态吗? (我不想要那个)。以及如何实现其他事情? *有什么建议吗? *

最佳答案

var run = false;
run = true;
table.state.save(run); // runs the state save function

// SaveState
'stateSaveCallback': function (settings, data) {
if (run == true) {
$.ajax({
'url': 'hfdjs.php',
'data': data,
'dataType': 'json',
'method': 'POST',
"success": function () {},
error: function (xhr, ajaxOptions, thrownError) {
console.log(thrownError);
}
});
}
run = false;
}

关于javascript - DataTables - stateSaveCallback 和点击激活的其他功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47396182/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com