6

TableToolsのボタンを変更する方法を見つけようとしています。フラッシュボタンの代わりに、自分でカスタマイズしたリンクを使用したいのですが。それができる方法はありますか?その変更を行う方法を教えてくれ、ボタンコレクションなどの機能を引き続き使用できる優れたリソース。

4

2 に答える 2

4

作成者によると、TableTools エクスポート機能を取得する唯一の方法は、Flash ボタンを使用することです。

あなたが見つけた他のスレッドは、現在、いいえ、これは TableTools が提供するオプションではないと言うはずです。Flash オプションは、クライアント側でファイルを完全に保存するクロス ブラウザー/プラットフォーム機能を提供するために使用されます。このオプションは、data:// プロトコルがサポートされていない古いブラウザー (IE6、IE7 など) では使用できません。およびローカル ファイル システムの対話オプション。

この機能を TableTools に追加することは間違いなく可能ですが、残念ながらまだその機会がありません。ロードマップには載っていますが。

アラン

エクスポート ファイル サーバー側の作成に関心がある場合は、TableToolsのダウンロード (GET) プラグインを検討することをお勧めします。

于 2012-09-25T22:37:41.517 に答える
1

はい、PDF/CSV などの既存のボタンを上書きしたり、データを取得または投稿するための URL へのリンクを持つ新しいカスタム ボタンを作成したりすることができます。ここでは、get メソッドを使用した 2 つのメソッドを示しています。

Get & Post メソッドの詳細については、次を参照してください。

訪問: Datatable tabletools GET/POST ダウンロード メソッドのオーバーライド

コードで生成された pdf が使用されるのは、いくつかの列データによってグループ化された行を持つテーブルの tabletools からの pdf 出力が重複しているためです。

最初に PDF 関数をオーバーライドし、

2番目にカスタムボタンを作成します。

1. PDF 関数をオーバーライドして、サーバー コードから pdf をフェッチします。

/*Get Method table Tools - PDF - Overriding*/

    TableTools.BUTTONS.pdf = {
        "sAction": "text",
        "sTag": "default",
        "sFieldBoundary": "",
        "sFieldSeperator": "\t",
        "sNewLine": "<br>",
        "sToolTip": "",
        "sButtonClass": "DTTT_button_text",
        "sButtonClassHover": "DTTT_button_text_hover",
        //"sButtonText": "PDF",
        "mColumns": "all",
        "bHeader": true,
        "bFooter": true,
        "sDiv": "",
        "fnMouseover": null,
        "fnMouseout": null,
        "fnClick": function (nButton, oConfig) {
            var oParams = this.s.dt.oApi._fnAjaxParameters(this.s.dt);
            var iframe = document.createElement('iframe');
            iframe.style.height = "0px";
            iframe.style.width = "0px";
            //iframe.src = oConfig.sUrl + "?" + $.param(oParams);
            iframe.src = oConfig.sUrl;//This is the URl you give in datatable Tabletools pdf override below
            document.body.appendChild(iframe);
        },
        "fnSelect": null,
        "fnComplete": null,
        "fnInit": null
    };

    /**/


/*Datatable initialisation*/
$(document).ready(function () {

oTable = $('#alternatecolor').dataTable({
            "bJQueryUI": true,
            "aLengthMenu": [
            [10, 25, 50, 100, -1],
            [10, 25, 50, 100, "All"]
            ],
            "sPaginationType": "full_numbers",
            "aoColumns": [
            null,
            null,
            null,
            null,
            null],
            "bLengthChange": false, "bPaginate": false,
            "sDom": '<"H"Tfr>t<"F"ip>',
            //"sDom": 'T<"clear">lfrtip',
            "oTableTools": {
                "aButtons": [
              "csv", "xls",
              {
               /*PDF Override*/
              "sExtends": "pdf",
              "sButtonText": "PDF",
               //Custom url to fetch pdf report
              "sUrl": " report/PDFReportUsers/us/1"
          }
            ]
            }
        })
        /*Row grouping - optional*/
                .rowGrouping({ bExpandableGrouping: true,
                    bExpandSingleGroup: false,
                    iExpandGroupOffset: -1
                    //asExpandedGroups: [name]
                });

        /**/
    });  
});

2. サーバー コードから pdf を取得するためのカスタム ボタン。

        /*Get Method table Tools - Download custom button*/

        TableTools.BUTTONS.download= {
            "sAction": "text",
            "sTag": "default",
            "sFieldBoundary": "",
            "sFieldSeperator": "\t",
            "sNewLine": "<br>",
            "sToolTip": "",
            "sButtonClass": "DTTT_button_text",
            "sButtonClassHover": "DTTT_button_text_hover",
            //"sButtonText": "PDF",
            "mColumns": "all",
            "bHeader": true,
            "bFooter": true,
            "sDiv": "",
            "fnMouseover": null,
            "fnMouseout": null,
            "fnClick": function (nButton, oConfig) {
                var oParams = this.s.dt.oApi._fnAjaxParameters(this.s.dt);
                var iframe = document.createElement('iframe');
                iframe.style.height = "0px";
                iframe.style.width = "0px";
                //iframe.src = oConfig.sUrl + "?" + $.param(oParams);
                iframe.src = oConfig.sUrl;
                document.body.appendChild(iframe);
            },
            "fnSelect": null,
            "fnComplete": null,
            "fnInit": null
        };

        /**/
$(document).ready(function () {

        oTable = $('#alternatecolor').dataTable({
            "bJQueryUI": true,
            "aLengthMenu": [
            [10, 25, 50, 100, -1],
            [10, 25, 50, 100, "All"]
            ],
            "sPaginationType": "full_numbers",
            "aoColumns": [
            null,
            null,
            null,
            null,
            null],
            "bLengthChange": false, "bPaginate": false,
            "sDom": '<"H"Tfr>t<"F"ip>',
            //"sDom": 'T<"clear">lfrtip',
            "oTableTools": {
                "aButtons": [
              "csv", "xls"
                         , {
                              "sExtends": "download",
                              "sButtonText": "Download PDF",
                              "sUrl":     "admin/user/4/downloadfile"
                          }
            ]
            }
        })
        /*Row grouping - optional */
                .rowGrouping({ bExpandableGrouping: true,
                    bExpandSingleGroup: false,
                    iExpandGroupOffset: -1
                    //asExpandedGroups: [name]
                });

        /**/
    });  
于 2013-05-22T08:18:26.877 に答える