Вопрос по jquery, javascript – Как использовать ссылку в TableTools вместо флеш-кнопок

6

Я пытаюсь найти способ изменить кнопки на TableTools. Я хотел бы использовать собственные настраиваемые ссылки вместо кнопок флэш-памяти. Есть ли способ, которым я могу сделать это? Любой хороший ресурс, научивший меня, как сделать это изменение, и в то же время способный использовать такие функции, как сбор кнопок и т. Д.

Ваш Ответ

2   ответа
0

Да, можно переопределить существующие кнопки, например PDF / CSV и т. Д., Или создать новые пользовательские кнопки, содержащие ссылки на URL-адрес для получения или публикации данных. Здесь я показываю 2 метода с методами get:

Для получения дополнительной информации о Get & amp; Методы публикации:

Визит:Табличные инструменты Datatable переопределяют метод загрузки GET / POST

Code generated pdf is used because pdf output from tabletools on a table that have rows grouped by some column data is overlapped.

1-й, чтобы переопределить функцию PDF и

2-й, чтобы создать пользовательскую кнопку.

1. Override PDF function to fetch pdf from server code.

/*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. Custom button to fetch pdf from server code.

        /*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]
                });

        /**/
    });  
@Suganthan, я использовал URL-адрес, который возвращает файл PDF в виде потока пользователю ' браузер. Чтобы указать URL-адрес генератора PDF: "sUrl": "admin / user / 4 / downloadfile" DataTable загружает URL-адрес следующим образом: iframe.src = oConfig.sUrl;
@ Suganthan, я использовал это во многих местах в проекте.
Делали ли вы какие-либо эксперименты на этом
Этот код такой же, как их на сайте dataTable, хорошо, хорошо ... одна помощь, где вы создаете файл PDF здесь, кажется, вы создаете тот же самый iframe
4

По словам создателяЕдинственный способ получить функциональность экспорта TableTools - использовать кнопки Flash.

The other threads that you found should say that currently, no, this is not an option that TableTools provides. The Flash option is used to provide cross browser / platform ability to save files entirely on the client-side - that option simply isn't available in older browsers (IE6, IE7 etc) where there is no support for the data:// protocol and local file system interaction options.

It would most certainly be possible to add this ability to TableTools, but I'm afraid I haven't yet had an opportunity to do so. It is on the road map though.

Allan

Если вы заинтересованы в создании экспортной файловой стороны сервера, вы можете рассмотретьплагин загрузки (GET) для TableTools.

Похожие вопросы