VisualForce页面中的DataTables,将swfPath设置为静态资源

时间:2013-05-02 14:18:07

标签: javascript salesforce flash visualforce jquery-datatables

我一直在使用VisualForce中的DataTables库,并且除导出功能外,其他一切都在工作。我在DataTables网站上跟踪了示例初始化,但是在TableTools.js文件中收到ZeroClipboard.js未定义的错误。 但是,我已多次检查并重新检查,并且zeroclipboard.js在Chrome中列为资源。

我做的唯一不同的事情,并且无法确定将函数调整为VisualForce是如何正确调用swf文件。目前,我在本地服务器上托管该文件,并在该函数中显式引用它。这可能是我的问题吗?上面的错误似乎没有关联,但是在经过大量的故障排除后,我认为这是唯一的问题。

有谁知道如何让swf文件成为Salesforce中的静态资源,并从函数中调用它,这样该文件与其他所有文件在同一台服务器上?

下面是我当前设置DataTables的函数(参考swfPath的问题:调用,如何使用静态资源执行此操作?)

var oTableTools = new TableTools( oTable, {
    "sSwfPath" : "www.MyWebsite.com/resources/copy_csv_xls_pdf.swf",
    "buttons": [
                "copy",
                "csv",
                "xls",
                "pdf",
                { "type": "print", "buttonText": "Print me!" }
               ]
});
$('#demo').before( oTableTools.dom.container );

1 个答案:

答案 0 :(得分:0)

您可以通过上传swf文件(您可以在media / swf / copy_csv_xls_pdf中找到它)作为salesforce中的静态资源然后实现它来实现此目的

例如

 oTable = $('#example').dataTable(
            {
                "iDisplayLength": 20,
                "sDom": '<C><"H"T><"clear"><"H"l>t<"F"ip>',
                "oTableTools": {
                "sSwfPath": "{!$Resource.SWF_File}"
                },
                "oColVis": 
                {
                    "activate": "mouseover"
                },
                "bAutoWidth": false,
                "bJQueryUI": true, 
                "sPaginationType": "full_numbers",
                "aaSorting": [[ 2, "asc" ]] ,
                "bLengthChange": false, 
                "bFilter": true