重装后如何设置dataTable的css?

时间:2015-12-01 13:17:24

标签: datatables

有一个dataTable

<table id="list_details_livraison" class="striped cell-hovered border bordered" data-searching="true">
                    <thead>
                        <tr>
                            <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.article');?></th>
                            <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.lot');?></th>
                            <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.qtelivrer');?></th>
                            <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.pu');?></th>
                            <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.taxe');?></th>
                            <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.remise');?></th>
                            <th style="text-align: center;"><?php echo _getText('detaillivraison.entete.prixtotal');?></th>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody>
                    </tbody>
                </table>

$(document).ready(function(){
     var list_details_livraison = $('#list_details_livraison').DataTable({
           ...
           "initComplete": function(settings, json) {
                                    $(this).css("table-layout","fixed");
                                }
        });

然后我通过从select元素中选择一个值来过滤dataTable:

$('#cacher').on("change", function() {
     var ddeb = convertDateFormat3($("#date_deb_").val());
     var dfin = convertDateFormat3($("#date_fin_").val());
     list_details_livraison.ajax.url("<?php echo RP_SSP; ?>server_processing_livraisons_frnsr.php?ddeb="+ddeb+"&dfin="+dfin+"&type="+$("#h_filtre_type_livraison").val()+"&valider="+$("#h_filtre_etre_valider").val()).load();
});

在运行时,我制作过滤器后,dataTable的列不是自动宽度;我尝试使用list_details_livraison.css("table-layout","fixed");,但我收到了控制台错误!那么如何在此时重新申请table-layout fixed css?

1 个答案:

答案 0 :(得分:2)

根据OP的要求将评论转换为答案。

initComplete()每个表创建只运行一次,因此在后续分页,过滤等后不会被调用。为此,您需要drawCallback()在每draw后调用。

你只需要改变:

"initComplete": function(settings, json) {

"drawCallback": function( settings ) {