2017-09-18 2 views
1

ich eine slickgrid mit dieser Filterung Plugin:Slickgrid Tabelle Plugin alle Filter

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

Dies ist die klare Methode für jede Spalte:

 $('<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); 
      }); 

Ich möchte eine Schaltfläche auf machen Die Seite, die alle Filter löscht und die Schaltflächenbilder zurücksetzt. Ich habe so weit gekommen bin aber fest:

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

Ich nehme an, ich brauche die Spalten durchlaufen und 0 die filterValues ​​aber nicht für das Leben von mir wissen, wie das zu tun.

Antwort

2

ich es so tun, müssen Sie die Spalte, weil das ist zurückgesetzt, wo 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

Sehr ordentlich Dank Michael gespeichert sind. Es ändert auch das Filtersymbol zurück auf den Standardpfeil, was großartig ist. – matt9292