过滤列的集合

时间:2016-10-06 17:35:49

标签: javascript html datatable filtering webix

在我的Webix数据表中,一列从DataColletion中获取数据。问题出在列的过滤中:似乎它适用于原始数据(包含ID)并忽略数据集合的值。如何更改此行为并按集合的值过滤数据?

数据:

var mycollection = new webix.DataCollection({  
  data:[{
    id: '12',
    value: 'CollItem 1'
  }]
});

var mydata = [{
  id: 1, 
  name: 'Item 1', 
  troublesomeColumn: '12' // id of the CollItem 1
}];

配置:

columns:[{
  id: 'troublesomeColumn',
  collection: mycollection,
  header:{
    content:"textFilter"
  }
}],
data:mydata

Code snippet。提前谢谢。

1 个答案:

答案 0 :(得分:1)

过滤器使用数据集,而不是使用链接集合中的模板或值。因此,您需要按照Webix文档中的说明create a custom filtering rule,即在过滤器的compare属性中定义所需的模式:

  {
    content:"textFilter",
    compare:function(value, filter, obj){
      var colValue = mycollection.getItem(value).value;
      toFilter = colValue.toString().toLowerCase();                            
      filter = filter.toString().toLowerCase();
      return toFilter.indexOf(filter) !== -1;
    }
  }

Updated snippet