registerFilter

добавляет внешний фильтр определённому столбцу или полю данных

void registerFilter(HTMLElement|object object,object config,object controller);

Parameters

objectHTMLElement|objectэлемент или объект контрола Webix
configobjectобъект с настройками (должен включать в себя уникальный columnId)
controllerobjectобъект с методами фильтра

Example

// регистрируем HTML поле как фильтр
grid.registerFilter(
  document.getElementById("myfilter"), 
    { columnId:"title" }, 
    {
        getValue:function(object){
            return object.value;
        },
        setValue:function(object, value){
            object.value = value;
        }
    }
);
 
// добавляем List
grid.registerFilter(
  $$("myfilter"),   // хранится как параметр 'list' в 'getValue'
  { columnId:"year" },  // столбец для фильтрования
  {
    getValue:function(list){
      var selection = list.getSelectedId();
      var item = list.getItem(selection)
      var filterValue = item.filter;
      return function(year){
        return year > filterValue
      }
    }
  }
);

Related samples

Details

В примере выше:

  • поле с ID='myfilter' становится фильтром для столбца с ID='title';
  • метод getValue у созданного фильтра получает значение из своего HTML узла и задаёт его в качестве параметра для фильтрации.

Требования

Во избежание несовместимостей, у каждого столбца/поля данных может быть только один фильтр (или внешний, или внутри хедера). Это значит, что каждый указанный columnId должен быть уникальным (любым уникальным ключом).

const table = $$("table");
table.registerFilter(
  someControl,
  { columnId:"any" },
  {
    // getValue, setValue...
  }
);
table.registerFilter(
  someOtherControl,
  { columnId:"dates" },
  {
    // getValue, setValue...
  }
);

Related sample:  

See also
Наверх
If you have not checked yet, be sure to visit site of our main product Webix web development library and page of javascript excel reader product.