Datatables: отключить изменение размера столбца после фильтрации

Я использую datatables и заполняю таблицу данными с помощью javascript. Он работает нормально, но хотелось бы предотвратить datables с изменением ширины столбцов в таблице после фильтрации. Я пробовал несколько решений, найденных в интернете, но это, похоже, не решает проблему.

мой HTML:

<table class="table table-striped table-bordered table-hover" id="id-table" width="100%"></table>

Я создаю таблицу, как:

var table = $('#id-table').DataTable(
        {
            paging:     false,
            ordering:   false,
            info:       false,
            "bAutoWidth": false, // Disable the auto width calculation : false,
            columns:  columns,
            data :    assignments,
            sScrollX: "100%",
            // aoColumns :  aoColumns
  //           aoColumns : [ 
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" },
  //   { "sWidth": "150px" }
  // ]

            // aoColumns: aoColumns
           // columnDefs : cdefs
        }
    );

где data-массив с данными, а columns-массив объектов, таких как as:

bSearchable false
sTitle "Column Title"
sWidth "100px"
title "Column Title"
mRender function(data, type, full, meta)
render function(data, type, full, meta)

Я попытался установить ширину в обоих " столбцах "напрямую и использовать параметры" aoColumns " (прокомментировано в коде выше). В обоих случаях ширина столбцов по-прежнему изменяется после фильтрации. Есть идеи, как отключить это автоматическое изменение размера?

2 ответов


в вашем стиле набора тегов таблицы html table-layout до 'fixed' и передать bAutoWidth = false для функции datatable


у меня была эта проблема с текущей версией DataTables (v1.10.16) и это было потому, что я установил autoWidth до false не понимая, что он делает.

в конфигурации по умолчанию (CSS table-layout: auto + DataTables'autoWidth: true) столбцы имеют соответствующий размер на основе данных и не прыгают при фильтрации.