2016-09-29 4 views
1

Я использую Bootstrap Table от wenzhixin. Мне нужно отфильтровать несколько столбцов. Например, мне нужно отфильтровать страны, а затем города.Фильтр загрузочного стола по нескольким столбцам

У меня есть два поля для каждого поля в таблице (выберите страну и выберите город).

Как я делаю это прямо сейчас, я применяю filterBy метод на изменение выбора опции:

$('#countries-list').on('change', function (evt) { 
     var selectedCountry = $('#countries-list').select2('val'); 
     if (selectedCountry == "all") { 
      $tableFilter.bootstrapTable('filterBy'); 
     } else { 
      $tableFilter.bootstrapTable('filterBy', {country: selectedCountry});     
     } 
    }); 

    $('#cities-list').on('change', function (evt) { 
     var selectedCity = $('#cities-list').select2('val'); 
     if (selectedCity == "all") { 
      $tableFilter.bootstrapTable('filterBy'); 
     } else { 
      $tableFilter.bootstrapTable('filterBy', {city: selectedCity});    
     } 
    }); 

Проблема заключается в том, что они перекрывают друг друга. Я был бы признателен за любые предложения о том, как применять второй фильтр только к результатам первого, а не ко всему набору данных.

Спасибо!

+0

Я создал таблицу, используя угловые нг-повтор и пользовательские фильтры. Все фильтры работают сейчас, но все еще есть некоторые другие проблемы ... Итак, если вы придумаете решение, еще не поздно поделиться;) Спасибо! – nysmoon

ответ

0

Я предлагаю вам использовать расширение загрузочного стола Filter-Control.

+1

Спасибо за ссылку! Я действительно пробовал это, красивое расширение! Проблема в том, что мои заинтересованные стороны хотят, чтобы поля ввода для фильтров выглядели определенным образом, отдельно от таблицы. Я не мог понять, как сделать эту работу с полями ввода, которые находятся только на странице, а не в заголовке таблицы. Надеюсь, это имеет смысл :) – nysmoon