2017-09-18 30 views
1

我有這個過濾插件一個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但對我的生活不知道該怎麼做。

回答

2

我不喜歡這樣,你需要重新設置,因爲多數民衆贊成在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

相關問題