使用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