pan*_*njo 22 javascript jquery json jquery-datatables
我正在使用jquery数据表来显示网格内的数据.在初始页面加载脚本采取DateTime.Today并进一步处理它们,问题是在初始页面加载之后,当我试图将用户输入日期用于进一步处理时.我有以下错误.
DataTables警告(table id ='dataTable'):无法重新初始化DataTable.要检索此表的DataTables对象,请不要传递任何参数或查看bRetrieve和bDestroy的文档
function getDate() {
var date = $('input[name="myDate"]').val();
return date;
}
$('#myDate').click(updateDate);
function updateDate() {
$('#dataTable').dataTable({
"bServerSide": true,
"sAjaxSource": "/Home/Ajax",
"fnServerParams": function (aoData) {
var date = getDate();
aoData.push({ "name": "myDate", "value": date });
},
//... there's more
}
updateDate();
Run Code Online (Sandbox Code Playgroud)
脚本放在页面底部.
小智 53
尝试添加"bDestroy":true到选项对象文字,例如
$('#dataTable').dataTable({
"bServerSide": true,
....
"bDestroy": true
});
Run Code Online (Sandbox Code Playgroud)
Nis*_*Nis 12
我知道这是一个老问题.但这适用于其他有类似问题的人.
您应该销毁旧的dataTable分配.在创建新数据表之前,请使用以下代码
$("#dataTable").dataTable().fnDestroy();
Run Code Online (Sandbox Code Playgroud)
Mis*_*ith 11
DataTables API已更改,但如果您尝试再次重新初始化数据表,则仍会抛出此错误.
您可以检查它是否已经创建:
$.fn.DataTable.isDataTable("#myTable")
Run Code Online (Sandbox Code Playgroud)
并销毁它,以便它可以再次重建:
$('#myTable').DataTable().clear().destroy();
Run Code Online (Sandbox Code Playgroud)
它不是最有效的方式,但它有效.应该可以在不破坏它的情况下更新表,只需使用clear和row.add,但是当数据源是传递给构造函数的数组时,我还没有找到一种方法.
| 归档时间: |
|
| 查看次数: |
65243 次 |
| 最近记录: |