Как избежать использования скрипта настройки для каждой кнопки в dataTables? - PullRequest
0 голосов
/ 26 апреля 2018

Я пишу некоторый customize скрипт, который запускается при нажатии определенной кнопки в dataTable

buttons     : [
                {   extend          : 'copyHtml5'},
                {
                    extend          : 'excel', 
                    title           : "report" },
                {
                    extend          : 'pdf', 
                    title           : "report"},
                {
                    extend          : 'print',
                    text            : 'Print Selected',
                    orientation     : 'landscape',
                    title           : '',
                    autoPrint       : false,
                    customize       : function (win){

                         //TABLE STYLE
                         $(win.document.body).addClass('white-bg');
                         $(win.document.body).css('font-size', '10px');
                         $(win.document.body).find('table').css('font-size', 'inherit');    
                         $(win.document.body).find('table tr').css('border','1px solid black');

                         //PREPEND HEADER
                         //another lines to adding complex header

                         //APPEND FOOTER
                         //another lines to adding  complex footer
             ]

каждый customize скрипт работает только для каждой кнопки, так что если я хочучтобы другая кнопка делала то же самое, что и кнопка print, мне нужно дублировать customizeИтак, как этого избежать?Я не хочу дублировать это, потому что это менее обслуживаемо.

1 Ответ

0 голосов
/ 26 апреля 2018

Извлеките функцию customize и передайте ее атрибуту:

var buttons=[
    {   'extend'          : 'copyHtml5'},
    {
        'extend'          : 'excel', 
        'title'           : "report" },
    {
        'extend'          : 'pdf', 
        'title'           : "report"},
    {
        'extend'          : 'print',
        'text'            : 'Print Selected',
        'orientation'     : 'landscape',
        'title'           : '',
        'autoPrint'       : false,
        'customize'       : customize
    }
]

var customize = function (win){
    //TABLE STYLE
    $(win.document.body).addClass('white-bg');
    $(win.document.body).css('font-size', '10px');
    $(win.document.body).find('table').css('font-size', 'inherit');    
    $(win.document.body).find('table tr').css('border','1px solid black');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...