Slickgrid电子表格插件清除所有滤镜

问题描述:

我有这个过滤插件一个slickgrid:Slickgrid电子表格插件清除所有滤镜

https://github.com/danny-sg/slickgrid-spreadsheet-plugins/blob/master/ext.headerfilter.js

这是每列的清零方法:

 $('<button>Clear</button>') 
      .appendTo($menu) 
      .bind('click', function (ec) { 
       //alert(JSON.stringify(columnDef)); 
       // console.log($menuButton.data("column")); 
       // alert($menuButton.data("column").id); 
       columnDef.filterValues.length = 0; 
       setButtonImage($menuButton, false); 
       handleApply(ec, columnDef); 
      }); 

我想打一个按钮清除所有过滤器并重置按钮图像的页面。到目前为止,我已经得到了这一点,但我坚持:

$("#clearallfilters, #clearallfilters-sm").click(function() { 
    for (var filcolumn in grid.getColumns()) { 
    filcolumn.filterValues.length = 0; 
    //then change all pictures 
    } 
}) 

我想我需要通过列循环和0出filterValues但对我的生活不知道该怎么做。

我不喜欢这样,你需要重新设置,因为多数民众赞成在filervalues存储

var clearcolumns = grid.getColumns(); 
for (var i = 0; i < clearcolumns.length; i++) { 
if (clearcolumns[i].filterValues !== undefined) { 
    delete clearcolumns[i].filterValues; 
} 
} 
grid.setColumns(clearcolumns); 
dataView.refresh(); 
grid.render();enter code here 
+0

非常整洁感谢迈克尔列。它也将过滤器图标更改回默认箭头,这非常棒。 – matt9292