데이터 테이블 처리를 위해 Jquery의 DataTable을 사용하면 매우 편리합니다. 행을 삭제한 후 페이지를 업데이트해야 한다는 일반적인 문제가 있습니다. 주의해야 할 방법은 다음과 같습니다. 프론트 페이지에서 테이블을 초기화할 때, 주의 사항:
var table = $( '#sorting-advanced')
table.dataTable({
'bServerSide': true,
'sAjaxSource': 'servlet/UserList<%=queryString%>',
'bProcessing ': true, 'bStateSave': true,
'aoColumnDefs': [
{ 'bSortable': false, 'aTargets': [0,1,6]}
],
'sPaginationType ': 'full_numbers',
'sDom': '<" dataTables_header"lfr>t<"dataTables_footer"ip>',
'fnInitComplete': 함수( oSettings )
{
// 스타일 길이 선택
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('정말로 삭제하시겠습니까? user?', 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에서 얻어집니다.