Удалить поле поиска datatables без отключения поиска

Я создал таблицу данных в Angular5, используя angular-datatables. Затем я создал нижний колонтитул таблицы и внедрил поля ввода для поиска по каждому столбцу отдельно, а также добавил style="display: table-header-group;" в нижний колонтитул, чтобы он располагался над заголовком.

Теперь я хочу удалить стандартное поле ввода данных поиска. Если я просто отключу его в конфигурации с данными, то настраиваемые поля поиска не будут работать. Я также пытался изменить значение класса dataTables_filter на display: none, но это не сработает, так как он получает стиль из папки node_modules.

Я мог бы изменить свой node_modules/datatables/style.css, но проблема в том, что это единственная папка, которая находится в списке gitignore и не попадает в наш репозиторий.

Вот мой код: HTML:

<tfoot style="display: table-header-group;">
    <tr>
      <th style="width: 25%">

      </th>
      <th style="width: 25%">

      </th>
      <th style="width: 25%">
        <input type="text" placeholder="Search actions" name="search-actions" class="form-control" />
      </th>
      <th style="width: 25%">
        <input type="text" placeholder="Search messages" name="search-messages" class="form-control" />
      </th>
    </tr>        
  </tfoot>

Машинопись:

ngOnInit(): void {
    this.dtOptions = {
      ajax: 'http://www.mocky.io/v2/5b0eb2083200006300c19bd8',
      columns: [{
        title: 'Date',
        data: 'date'
      }, {
        title: 'Time',
        data: 'time'
      }, {
        title: 'Action',
        data: 'action'
      }, {
        title: 'Message',
        data: 'message'
      }]
    };
  }

  ngAfterViewInit(): void {
    this.datatableElement.dtInstance.then((dtInstance: DataTables.Api) => {
      dtInstance.columns().every(function () {
        const that = this;
        $('input', this.footer()).on('keyup change', function () {
          if (that.search() !== this['value']) {
            that
              .search(this['value'])
              .draw();
          }
        });
      });
    });
  }


person Community    schedule 06.06.2018    source источник


Ответы (1)


Используйте параметр dom и исключите f из значения по умолчанию (lfrtip для стиля по умолчанию), чтобы скрыть управление фильтрацией.

Например:

this.dtOptions = {
   // ... skipped ...
   dom: 'lrtip'
}
person Gyrocode.com    schedule 07.06.2018