Deleted Rows appear back upon adding new row DataTablesと同様の問題が発生していますが、row().delete().draw(false);
を使用する方法についての彼の解決策は機能しませんでした。DataTables:行を削除して別の行を削除すると、削除された行が再び表示されます
私は行を追加および削除する必要があるこのテーブルを持っています。行を追加して削除した後、新しい行を追加する場合を除いて、ほとんどの場合、作業の追加と削除は大丈夫です。新しいものを追加すると、削除された行が新しいものと一緒に再表示されます。
これは私が最初の行が追加されたときにテーブルを作成し、新しい行を追加する場合、ここで追加の行
$('body').on('click', ".btn-dataset", function(){
$("#div-warn").empty();
if(!$('#dst-num').val() || !$('#questionnaire').val() || !$('#dst-subjectnum').val()){
var warn = '<p><b>The main information about the dataset is required.</b></p>';
$(warn).appendTo('#div-warn');
}else{
var num_dataset = $('#dst-num').val();
var questionnaire = $('#questionnaire').val();
var num_subjects = $('#dst-subjectnum').val();
var info_dataset = $('#dst-info').val();
$('#dst-num').val('');
$('#questionnaire').val('');
$('#dst-subjectnum').val('');
$('#dst-info').val('');
if($('#dataset-table').length){
var et = $('#dataset-table').DataTable();
et.row.add([
num_dataset,
questionnaire,
num_subjects,
info_dataset,
'<a href="#" onclick="deleteRow(this)"><span class="glyphicon glyphicon-trash delete-row"></span></a>'
]).draw(false);
}else
{
var html = '<table class="table table-hover display" id="dataset-table">';
html += '<caption><span id="table-title">Datasets</span></caption>';
html += '<thead><tr><th><b>Dataset Number</b></th><th><b>Questionnaire Name</b></th><th><b>Number of Subjects</b></th><th><b>Information on the dataset</b></th><th class="no-sort"></th></tr></thead><tbody>';
html += '<tr>';
html += '<td>' + num_dataset + '</td>';
html += '<td>' + questionnaire + '</td>';
html += '<td>' + num_subjects + '</td>';
html += '<td>' + info_dataset + '</td>';
html += '<td><a href="#" onclick="deleteRow(this)"><span class="glyphicon glyphicon-trash delete-row"></span></a></td>';
html += '</tr>';
html += '</tbody></table>';
$(html).appendTo('#div-dataset');
$('#dataset-table').DataTable({
"order": [[ 0, "desc" ]],
"aoColumnDefs": [
{ 'bSortable': false, 'aTargets': [ "no-sort" ] } ],
"bFilter": false,
"scrollY": "200px",
"scrollCollapse": true,
"paging": false,
"info": false
});
}
}
});
関連部分を追加するために使用するJavaScriptコードでは、この
var et = $('#dataset-table').DataTable();
et.row.add([
num_dataset,
questionnaire,
num_subjects,
info_dataset,
'<a href="#" onclick="deleteRow(this)"><span class="glyphicon glyphicon-trash delete-row"></span></a>'
]).draw(false);
あります
これで行を削除するコードは次のとおりです。
function deleteRow(obj){
var tbl = $(obj).closest('table');
var tr = $(obj).closest('tr');
tbl.DataTable();
tr.remove().draw(false);
}
私はいくつかのテーブルを持っていますなぜ私は.closest()
関数を使用して、ユーザーが行を削除するためにクリックしたかを把握するのです。
私が紛失している可能性のあるアイデアはありますか?