Javascript DataTables TableTools导出按钮不工作

Javascript DataTables TableTools导出按钮不工作,javascript,jquery,html,datatable,tabletools,Javascript,Jquery,Html,Datatable,Tabletools,使用下面的代码,我可以让TableTools按钮显示在页面上,正确设置样式,甚至在mouseover事件上更改鼠标图标,但是导出功能不起作用。当我点击按钮时,什么也没发生。甚至都不会收到错误消息 在用户点击“搜索”按钮之前,页面上不存在正在使用的DataTable插件。完成此操作后,Ajax调用将提取相关数据并创建DataTable。同样,程序的这一部分工作正常,但是当我点击“导出”按钮(CSV、Excel、PDF)时。。。什么也没发生 jQuery $.ajax({ t

使用下面的代码,我可以让
TableTools
按钮显示在页面上,正确设置样式,甚至在
mouseover
事件上更改鼠标图标,但是导出功能不起作用。当我点击按钮时,什么也没发生。甚至都不会收到错误消息

在用户点击“搜索”按钮之前,页面上不存在正在使用的
DataTable
插件。完成此操作后,Ajax调用将提取相关数据并创建
DataTable
。同样,程序的这一部分工作正常,但是当我点击“导出”按钮(CSV、Excel、PDF)时。。。什么也没发生

jQuery

    $.ajax({
        type: 'GET',
        url: '@Url.Action("PensgcReport", "Home")',
        data: { inputArray: inputArray },
        traditional: true,
        success: function (data) {
            //Unpack return object into 2D array
            var array = [];
            $.each(data, function (key, value) {
                var tempArray = [];
                $.each(value, function(key, value) {
                    tempArray.push(value);
                });
                array.push(tempArray);
            });

            console.log(array);
            $('#ReportTable').dataTable({
                "bDestroy" : true,
                "aaData": array,
                "aoColumns": headers,
                "bFilter": false,
                "bPaginate": false,
                "bLengthChange": false,
                "bFilter": false,
                "bSort": false,
                "bInfo": false,
                "aaSorting": [],
                "oLanguage": {
                    "sSearch": "Filter results:"
                },
                "sDom": 'T<"clear">lfrtip',
                "tableTools": {
                    "sSwfPath": "Content/media/copy_csv_xls_pdf.swf",
                    "aButtons": 
                    [
                            {
                                'sExtends': 'csv',
                                "sFileName": "PENSGC_Report_" + new Date() + ".csv",
                                'mColumns': [0, 1]
                            },
                            {
                                'sExtends': 'xls',
                                "sFileName": "PENSGC_Report_" + new Date() + ".xls",
                                'mColumns': [0, 1]
                            },
                            {
                                'sExtends': 'pdf',
                                "sFileName": "PENSGC_Report_" + new Date() + ".pdf",
                                'mColumns': [0, 1]
                            },
                    ]
                }
            });
        }
    })
$.ajax({
键入:“GET”,
url:'@url.Action(“PensgcReport”,“Home”),
数据:{inputArray:inputArray},
传统的:是的,
成功:功能(数据){
//将返回对象解压缩到二维数组中
var数组=[];
$。每个(数据、函数(键、值){
var tempArray=[];
$.each(值、函数(键、值){
tempArray.push(值);
});
array.push(tempArray);
});
console.log(数组);
$('#ReportTable')。数据表({
是的,
“aaData”:数组,
“aoColumns”:标题,
“bFilter”:错误,
“bPaginate”:错误,
“bLengthChange”:false,
“bFilter”:错误,
“bSort”:错误,
“bInfo”:假,
“aaSorting”:[],
“语言”:{
“sSearch”:“筛选结果:”
},
“sDom”:“Tlfrtip”,
“表格工具”:{
“sSwfPath”:“Content/media/copy_csv_xls_pdf.swf”,
“阿布顿”:
[
{
“sExtends”:“csv”,
“sFileName”:“PENSGC_报告”+新日期()+“.csv”,
“McColumns”:[0,1]
},
{
“六分法”:“xls”,
“sFileName”:“PENSGC_报告”+新日期()+“.xls”,
“McColumns”:[0,1]
},
{
“sExtends”:“pdf”,
“sFileName”:“PENSGC_报告”+新日期()+“.pdf”,
“McColumns”:[0,1]
},
]
}
});
}
})
HTML

这是加载页面时呈现的HTML(无特殊情况)


文件夹结构


将swf路径更改为:

"sSwfPath": "//cdn.datatables.net/tabletools/2.2.2/swf/copy_csv_xls_pdf.swf"

它似乎正在链接/寻址到.swf文件。你能用完整url而不是相对url来测试更改“sSwfPath”吗?更改为
http://localhost:56789/Content/media/copy_csv_xls_pdf.swf
但仍然获得相同的结果您的环境是基于Unix的吗?可能是权限?只是在Windows 7计算机上的Visual Studio中运行此功能。您认为问题在于
.swf
文件的可访问性?我曾经遇到过同样的问题。这是在使用Datatables 1.8时发生的,我不得不下载一个名为TableTools的额外插件,并指向这些.swf文件,它成功了。在html中,我还必须包括。您使用的是什么版本?请避免只使用代码的答案,并提供代码解释。
"sSwfPath": "//cdn.datatables.net/tabletools/2.2.2/swf/copy_csv_xls_pdf.swf"
 var table = $('#mytable').dataTable({ YOUR OPTIONS});
       var tableTools = new $.fn.dataTable.TableTools(table, {
               "buttons": ["copy",
                                  "csv",
                                  "xls",
                                  "pdf",{ "type": "print", "buttonText": "Print me!" } ],
                                  "sSwfPath": "//cdn.datatables.net/tabletools/2.2.2/swf/copy_csv_xls_pdf.swf" });
           $(tableTools.fnContainer()).prependTo('#mytable_wrapper');