这是关于将yadcf插件用于具有自定义配置的多个表。
我尝试使以下JSFiddle工作,但它没有用。我在JSFiddle上编写的代码将提供我的意图。
var table = $(settings.tableId).DataTable({
serverSide: false,
processing: true,
autoWidth: false,
lengthChange: false,
searching: true,
scrollX: true,
scrollY: 350,
dom: "<<'col-md-8'B><'col-md-3'f>tip>",
fixedColumns: true,
columnDefs: [{ targets: [0], orderable: false }],
ajax: {
url: settings.ajax.url,
type: "POST",
data: function (params) {
(settings.ajax.data != undefined) ? $.extend(params, settings.ajax.data) : null;
params.searchFilterValue = $(currentTableId + '_filter.dataTables_filter input').val();
if (JSON.stringify($(currentTableId).DataTable().settings().init().filterKeyValuePairs) != "{}")
params.jsonColumnFilters = JSON.stringify($(currentTableId).DataTable().settings().init().filterKeyValuePairs);
},
error: function (xhr, error, thrown) {
//GLOBAL.getException(xhr.responseText);
$(currentTableId + " td.dataTables_empty").addClass("validationError").html(GLOBAL.isJson(xhr.responseText).ErrorMessage);
}
},
columns: (settings.actions != undefined) ? getColumns(settings.actions, settings.columns) : settings.columns,
filterKeyValuePairs: {},
order: settings.order,
rowId: settings.rowId,
buttons: addButtons(settings.buttons),
initComplete: function (settings, json) {
(settings.Events != undefined) ? (settings.Events.initComplete != undefined) ? settings.Events.initComplete() : null : null;
},
drawCallback: function (settings) {
this.api().rows().deselect();
(settings.Events != undefined) ? (settings.Events.drawCallback != undefined) ? settings.Events.drawCallback() : null : null;
}
});
http://jsfiddle.net/umamaheswarcs/q9rvLwz8/34/
我的想法是创建一个用于创建多个表的通用方法。因此,我已经设置了配置和初始化表,如JSFiddle所示。在那个例子中,我创建了两个表。第一个表格显示在网页上
并在垃圾按钮上单击第二个表在bootstrap模式上打开。
当模态关闭时,我在模态关闭事件中从DOM中移除模态(我假设第二个表将被销毁)
第二次点击垃圾按钮时出现问题。第3698行的yadcf插件将settings.oInstance.selector作为'undefined'接收,从而导致插件失败。 我可以知道如何摆脱这种情况,还是我在多表初始化过程中犯了什么错误?