我遇到了一个奇怪的问题,它发生在我维护的几个使用数据表的网站上。
每当我使用fnPageChange时,它都不起作用,除非它周围有一个setTimeout;
setTimeout(function() { oTable.fnPageChange(whatPage); }, 100);
或之前有警报
alert('starting'); oTable.fnPageChange('last');
我理解这可能是某种序列错误,但我不确定为什么在多个项目中会出现同样的问题。
这是我现在正在使用的删除功能:
function fnDelete(elem){
if (selected.length>0) {
var c;
c = confirm('Are you sure you want to delete the selected ${displayTableName}?');
if (c) {
// Create delete url from editor url...
var deleteURL = (urlstr.substring(0, urlstr.lastIndexOf('/') + 1)) + "delete.do";
deleteRecord(deleteURL,selected[0]);
if ( $('tableViewer tr').length === 0) {
// Reload the Table
oTable.fnPageChange('last');
//Send them back to the last page
}
}
}
}
有谁知道这可能是什么类型的问题?
这是deleteRecord:
function deleteRecord(deleteURL, iid){
var didDelete = false;
jQuery.ajax({
type: "POST",
url: deleteURL,
dataType:"html",
data:"recordID="+iid,
success:function(response){
didDelete = true;
oTable.fnDraw(true);
selected = [];
selectedRecord = [];
enableButtons(selected);
},
error:function (xhr, ajaxOptions, thrownError){
if ((xhr.status >=400) && (xhr.status < 500))
alert(xhr.responseText);
else
alert('error');
}
});
return didDelete;
}
答案 0 :(得分:-1)
您可以尝试以下
oTable.page(CurrentPageNo).draw(false);
这里,oTable是Datatable的对象。