我有一个显示表格的模态。而且我使用datatable插件,以便数据可搜索和可排序。起初它正常工作,但是当我关闭模式并单击指向同一模式的其他链接时,它显示错误。我找到了销毁DataTable的解决方案,并destroy()
在数据表初始化之前放置了,但是在表内部未显示任何数据..如果在初始化之后放置它,则第二次单击按钮时会出现初始化错误。我该如何解决?
这是我的代码:
$.ajax({
url: "<?php echo site_url('admin/group/getMember')?>",
type: 'POST',
data: { 'groupID': id},
dataType: 'JSON',
success: function(result){
$('#records_table tbody').empty();
// $('#records_table').DataTable({
// "bLengthChange": false,
// "paging":false,
// });
$('.modal-header #hdrmsg').text(result[0].fname);
var trHTML='';
$.each(result, function (i, item) {
trHTML += '<tr><td>' + item.fname + '</td><td>' + item.mname + '</td><td>' + item.lname + '</td></tr>';
});
$('#records_table tbody').append(trHTML);
$('#records_table').DataTable({
"bLengthChange": false,
"paging":false,
});
$('#records_table').DataTable().fnDestroy();
}
});
销毁dataTables实例的主要原因是,如果您想更改初始化选项(例如change
paging
等)。或者是否应该更改表结构。这些情况似乎都不是这里吗?要回答这个问题,销毁和重新初始化表的最安全方法是使用简写选项destroy: true
:
var table = $('#records_table').DataTable({
...
destroy : true
});
更进一步,我认为您正在做一些倒退。
$('#records_table tbody').empty();
而不是清空表table.clear()
?$('#records_table tbody').append(trHTML);
而不是使用注入记录table.row.add([...])
?这是一个类似于问题中的代码方案,每次显示模式时,它都会重新初始化dataTable而不会发生冲突:
var table;
$('#modal').on('show.bs.modal', function() {
$.ajax({
url: url,
dataType: 'JSON',
success: function(response) {
var response = $.parseJSON(response.contents);
//clear the table, if it exists
if (table) table.clear();
//reinitialise the dataTable
table = $('#records_table').DataTable({
destroy: true,
bLengthChange: false,
paging: false
});
$.each(response, function(i, item) {
console.log("inserting", item);
table.row.add([
item.name,
item.position
]).draw();
});
}
});
});
参见演示-> http://jsfiddle.net/bz958dxj/
但是,您实际上根本不需要破坏表,这只会降低性能:
//global table object
table = $('#records_table').DataTable({
bLengthChange: false,
paging: false
});
$('#modal').on('show.bs.modal', function() {
$.ajax({
url: url,
dataType: 'JSON',
success: function(response) {
var response = $.parseJSON(response.contents);
//clear the table
table.clear();
//insert data
$.each(response, function(i, item) {
console.log("inserting", item);
table.row.add([
item.name,
item.position
]).draw();
});
}
});
});
演示-> http://jsfiddle.net/8mjke9ua/
注意 :我只是assume
基于问题中的引用,.modal-header
在讨论引导程序模态。
注意
:请注意$.parseJSON(response.contents)
,您应该像在问题中一样进行操作。这样做的唯一原因是示例通过代理来避免同源策略。
对于“何时”有很多很好的答案,比如在这个线程中——静态类初始化何时发生?现在我的问题是“如何”。这是斯蒂芬C.的回答中的一段话 类静态初始化通常在第一次发生以下事件之前立即发生: 将创建该类的一个实例, 调用该类的静态方法, 已分配类的静态字段, 使用非恒定静态场,或 对于顶级类,执行词汇嵌套在类中的assert语句 那么它是如何在内部完成的呢?每个可能触发初始化的指令都用包装?任何工作的细节:-
问题内容: 我有一个显示所有员工的数据表。它适用于所有员工。我有一个选择标签,其中包含员工类型,例如,并且在更改员工类型时,我正在调用一个函数并传递所选的员工类型。 在ajax响应中获取所需和正确的数据,但引发警告 我试图摧毁它,但是没有运气。 也尝试过 它清除表并显示新添加的数据,但每次都添加带有列名的新排序图像。 这是我的代码段。 提前致谢。 问题答案: 在当前版本的DataTables(1.
初始化数据 打开MainSetup类,在Daos语句后面插入新建根用户的代码 // 初始化默认根用户 if (dao.count(User.class) == 0) { User user = new User(); user.setName("admin"); user.setPassword
本文向大家介绍datatables 初始化最小数据表:,包括了datatables 初始化最小数据表:的使用技巧和注意事项,需要的朋友参考一下 示例 以下代码会将ID为的表tableid转换为DataTable,并返回DataTables API实例: 将此代码与以下代码进行比较,该代码会将表转换为DataTable,但不会返回DataTables API实例: 有关使用DataTables AP
问题内容: 无论如何,Java中是否有删除数据(例如,变量值,对象)并确保不能从内存中恢复数据的方法?在Java中分配变量是否会从内存中删除值?有任何想法吗?适用于其他语言的答案也是可以接受的。 问题答案: 由于虚拟内存的奇妙,几乎不可能以完全无法检索的方式从内存中删除某些内容。最好的选择是将值字段清零。然而: 这并不意味着该对象的旧(未清零)副本不会保留在未使用的交换页面上,该页面可能会在重新启
游戏活动中: 这也适用于: