如何在重新加载后设置dataTable的css



存在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");
                                }
        });

然后,我通过从选择元素中选择一个值来过滤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呢?

应操作员要求转换为答案的注释。

initComplete()在每次创建表时只运行一次,因此在后续的分页、筛选等之后不会被调用。为此,您需要在每次draw之后调用的drawCallback()。

你只需要改变:

"initComplete": function(settings, json) {

"drawCallback": function( settings ) {

最新更新