使用Jquery的DataTable進行數據表處理非常方便常遇到的一個問題就是刪除一行後頁面必須進行更新需要注意的方法如下前台頁面中初始化table時注意
代碼如下:
var table = $(#sortingadvanced);
tabledataTable({
bServerSide: true
sAjaxSource: servlet/UserList
bProcessing: true bStateSave: true
aoColumnDefs: [
{ bSortable: false aTargets: []}
]
sPaginationType: full_numbers
sDom: <"dataTables_header"lfr>t<"dataTables_footer"ip>
fnInitComplete: function( oSettings )
{
// Style length select
tableclosest(dataTables_wrapper)find(dataTables_length select)addClass(select bluegradient glossy)styleSelect();
tableStyled = true;
}
});
bStateSave: true 這個必須設置這樣就可以在刪除返回時保留在同一頁上bStateSave: true 這個必須設置這樣就可以在刪除返回時保留在同一頁上
刪除的代碼如下
代碼如下:
function deleteConfirm(deleteID)
{
$modalconfirm(確實要刪除此用戶嗎? function()
{
$ajax(servlet/DeleteUser {
dataType : json
data: {
userID: deleteID
}
success: function(data)
{
if (datasuccess ==true)
{
$modalalert(刪除成功!);
start = $("#sortingadvanced")dataTable()fnSettings()_iDisplayStart;
total = $("#sortingadvanced")dataTable()fnSettings()fnRecordsDisplay();
windowlocationreload();
if((totalstart)==){
if (start > ) {
$("#sortingadvanced")dataTable()fnPageChange( previous true );
}
}
}
else
{
$modalalert(刪除發生錯誤請聯系管理員!);
}
}
error: function()
{
$modalalert(服務器無響應請聯系管理員!);
}
});
} function()
{
//$modalalert(Meh);
});
};
其中只要是需要判斷一下當前頁中是否有數據如果是最後一條的話就在刪除後調用
$("#sortingadvanced")dataTable()fnPageChange( previous true );已回到上一頁中
注意$("#sortingadvanced")dataTable()fnPageChange( previous); 是不行的必需進行刷新否則頁面中顯示的iDisplayStart會從cookie中取得還是刪除前的iDisplayStart
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20147.html