我正在使用带有导出和显示分页按钮的数据网格。
插件加载如下:
var table = $('#resultsTable').DataTable({
dom: 'Bfrtip',
initComplete: function (settings, json) {
debugger;
$('#resultsTable').DataTable().buttons().container().appendTo('#UserHead');
},
lengthMenu: [
[10, 25, 50, -1],
['10 rows', '25 rows', '50 rows', 'Show all']
],
buttons: [
'pageLength',
{
extend: 'collection',
text: 'Export',
buttons: [
'copy',
'excel',
'csv',
'pdf',
'print'
]
}]
});
首次启动页面时,此功能正常。我有一个Ajax.BeginForm,我用数据集刷新数据表。使用上面的代码,按钮消失,但数据库插件的其余部分工作正常。
Ajax代码:
@using (Ajax.BeginForm(Model.ReportName, "Report",
new AjaxOptions
{
我尝试使用OnSuccess方法中的以下代码让按钮返回到数据网格中:
OnSuccess = "OnSuccess",
UpdateTargetId = "resultsDiv",
InsertionMode = InsertionMode.Replace,
HttpMethod = "POST"
},
new { @class = "form-horizontal" }
))
{ ... }
var table = $('#resultsTable').DataTable({
dom: 'Bfrtip',
"initComplete": function (settings, json) {
$('#resultsTable').DataTable().buttons().container().appendTo('#UserHead');
table.buttons().container().appendTo('#UserHead');
},
lengthMenu: [
[10, 25, 50, -1],
['10 rows', '25 rows', '50 rows', 'Show all']
],
buttons: ['pageLength',
{
extend: 'collection',
text: 'Export',
buttons: [
'copy',
'excel',
'csv',
'pdf',
'print'
]
}]
});
这会导致initComplete函数出现异常:JavaScript运行时错误:对象不支持属性或方法'buttons'
我已尝试以下方法来解决此问题:从第一次加载中保存一个表变量,并在OnSuccess调用DataTable之前调用destroy。这导致例外。
我的问题是如何在Ajax调用之后让我的导出按钮显示回来?
答案 0 :(得分:0)
问题是没有扩展的jquery的重新初始化。初学者好运,案件结案。