JQuery Data Table削除後のページ更新はAjaxで解決

2529 ワード

JqueryのDataTableでデータテーブルを処理するのはとても便利で、よくある問題は1行を削除した後にページを更新しなければならないことで、注意しなければならない方法は以下の通りです:フロントページの中でtableを初期化する時注意:
 
  
var table = $('#sorting-advanced');
table.dataTable({
'bServerSide': true,
'sAjaxSource': 'servlet/UserList',
'bProcessing': true, 'bStateSave': true,
'aoColumnDefs': [
{ 'bSortable': false, 'aTargets': [0,1,6]}
],
'sPaginationType': 'full_numbers',
'sDom': 't',
'fnInitComplete': function( oSettings )
{
// Style length select
table.closest('.dataTables_wrapper').find('.dataTables_length select').addClass('select blue-gradient glossy').styleSelect();
tableStyled = true;
}
});

'bStateSave':true、これは設定する必要があります.これにより、戻りを削除するときに、同じページに保持できます.'bStateSave':true、これは設定する必要があります.これにより、戻りを削除するときに、同じページに保持できます.
削除されたコードは次のとおりです.
 
  
function deleteConfirm(deleteID)
{
$.modal.confirm(' ?', function()
{
$.ajax('servlet/DeleteUser', {
dataType : 'json',
data: {
userID: deleteID
},
success: function(data)
{
if (data.success =='true')
{
$.modal.alert(' !');
start = $("#sorting-advanced").dataTable().fnSettings()._iDisplayStart;
total = $("#sorting-advanced").dataTable().fnSettings().fnRecordsDisplay();
window.location.reload();
if((total-start)==1){
if (start > 0) {
$("#sorting-advanced").dataTable().fnPageChange( 'previous', true );
}
}
}
else
{
$.modal.alert(' , !');
}
},
error: function()
{
$.modal.alert(' , !');
}
});

}, function()
{
//$.modal.alert('Meh.');
});
};

ただし、現在のページにデータがあるかどうかを判断する必要がある場合は、最後のページであれば削除後に呼び出す
$("#sorting-advanced").dataTable().fnPageChange( 'previous', true );前ページに戻りました
注意$("#sorting-advanced").dataTable().fnPageChange( 'previous'); いいえ、更新する必要があります.そうしないと、ページに表示されているiDisplayStartがクッキーから取得されますか、削除前のiDisplayStartですか.