datatables.net: своя стилизация кнопок print и excel

Задача: кастомизировать внешний вид кнопок печати и экспорта, с выносом их в отдельный контейнер внизу экрана

Самый простой способ: отрисовка кнопок в своём контейнере, и навешивание эвента на их клик.

Определим CSS:

.hided {display:none}

datatables.net:

при выводе кнопок, сразу их скрываем, чуть ниже навесим на них эвент

        buttons: [
            {
            text: 'Добавить клиента',
                action: function ( e, dt, node, config ) {
                    AddUserPhone.value="";
                    AddUserName.value="";
                    AddUserPassword.value="";
                    if (owner_select.value>0){
                        $("#AddClientModal").modal("show");  
                    } else {
                        ToastMessage("error","Внимание!","Вам необходимо выбрать владельца");
                    };                                        
                }
            },
            {
                extend: 'excelHtml5',
                text:"",
                className:"hided"
            },            
            {
                extend: 'print',
                className:"hided",
                text:"",
            }
        ],

Контейнер:

рисуем кнопки, и навешиваем на них стандартное срабатывание по onclick

<div id="export_buttons">
    <div class="dt-buttons btn-group flex-wrap"> 
        <button onclick='$(".buttons-excel")[0].click();' class="btn buttons-excel buttons-html5 btn-link d-flex align-items-center" tabindex="0" aria-controls="clientsgrid" type="button">
            <span><i class="icons i_excel me-2"></i> Excel</span>
        </button> 
        <button onclick='$(".buttons-print")[0].click();' class="btn buttons-print btn-link d-flex align-items-center" tabindex="0" aria-controls="clientsgrid" type="button">
            <span><i class="icons i_print me-2"></i> Печать</span>
        </button> 
    </div>    
</div>

Результат:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.