Pytanie w sprawie tabletools, javascript, jquery, jquery-datatables – Jak używać łącza w TableTools zamiast przycisków flash

6

Próbuję znaleźć sposób na zmianę przycisków na TableTools. Chciałbym użyć własnych dostosowanych linków zamiast przycisków flash. Czy mogę to zrobić w jakiś sposób? Dowolny dobry zasób uczący mnie, jak dokonać tej modyfikacji i nadal korzystać z funkcji, takich jak zbieranie przycisków itp.

Twoja odpowiedź

2   odpowiedź
4

Według twórcy, jedynym sposobem uzyskania funkcji eksportu TableTools jest użycie przycisków Flash.

Inne wątki, które znalazłeś, powinny powiedzieć, że obecnie nie, nie jest to opcja dostępna w TableTools. Opcja Flash jest używana do zapewnienia możliwości przechowania plików po stronie klienta przez przeglądarkę / platformę - ta opcja po prostu nie jest dostępna w starszych przeglądarkach (IE6, IE7 itp.), Gdzie nie ma obsługi protokołu data: // i opcje interakcji lokalnego systemu plików.

Z pewnością byłoby możliwe dodanie tej umiejętności do TableTools, ale obawiam się, że nie miałem jeszcze takiej możliwości. Jest jednak na mapie drogowej.

Allan

Jeśli jesteś zainteresowany utworzeniem strony serwera plików eksportu, możesz rozważyćwtyczka pobierania (GET) dla TableTools.

0

Tak, możliwe jest zastąpienie istniejących przycisków, np. PDF / CSV itp., Lub utworzenie nowych przycisków niestandardowych z linkami do adresu URL, aby uzyskać lub opublikować dane. Tutaj pokazuję 2 metody z metodami get:

Więcej informacji na temat metod Get & Post:

Odwiedzić:Datatable tabletools Zastępuje metodę pobierania GET / POST

Plik generowany pdf jest używany, ponieważ dane wyjściowe PDF z tabletools na stole, które mają wiersze pogrupowane według niektórych danych kolumn, nakładają się.

1., aby zastąpić funkcję PDF i

2., aby utworzyć przycisk niestandardowy.

1. Zastąp funkcję PDF, aby pobrać plik PDF z kodu serwera.

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

        /**/
    });  
});
</code>

2. Przycisk niestandardowy do pobrania pliku PDF z kodu serwera.

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

        /**/
    });  
</code>
@Suganthan, użyłem tego w wielu miejscach projektu. T Gupta
Czy wykonałeś jakieś eksperymenty na tym Suganthan Madhavan Pillai
@Suganthan, używam adresu URL, który zwraca plik pdf jako przeglądarkę do użytkownika. Aby określić adres URL generatora pdf: „sUrl”: „admin / user / 4 / downloadfile” DataTable ładuje adres URL: iframe.src = oConfig.sUrl; T Gupta
Ten kod jest taki sam jak na stronie internetowej dataTable, ok w porządku ... jedna pomoc, w której generujesz plik pdf, wygląda na to, że tworzysz tę samą ramkę iframe Suganthan Madhavan Pillai

Powiązane pytania