数据表中的每一行都有一个删除按钮 .
点击删除按钮,我调用此代码:
$('.deleteButton').live('click', function () {
var $this = $(this);
var url = $this.attr("id");
$("#example").fnReloadAjax();
$.getJSON(url, Success());
});
url是控制器的动作,它接收Id并从数据库中删除数据 . 这样可行 . 我现在想要调用datatable的刷新/重绘功能,以便它可以加载新的结果,但它不起作用 .
数据表是:
$("#example").dataTable({
"aoColumns": [
{ "sTitle": "Id" },
{ "sTitle": "Name" }],
"bProcessing": true,
"bServerSide": true,
"sAjaxSource": '@Url.Action("FetchData", "Home")',
"sPaginationType": "full_numbers",
});
有人可以请教吗?
4 回答
引自API datatable page - 在fnReloadAjax()子弹上:
因此,您最好使用fnDraw .
[编辑]实际上,你的通话顺序应该是:
我能够用比上面答案中提供的更简单的方法来解决这个问题 .
Ajax call to delete data from backend
首先使用普通的ajax异步调用从后端删除数据 .
Delete from frontend datatable
获取要删除的行TR并使用数据表函数fnDeleteRow删除此行 . 这将自动刷新表,因此您不需要任何
fnDraw
或其他东西 .你完成.. :-)
这里的答案对我不起作用,所以我使用了这个:
http://datatables.net/plug-ins/api#fnReloadAjax
将其添加到文件中:
在页面上包含该文件并按如下方式调用:
使用dataTable的实例并从datatable中删除行