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

时间:2017-09-18 06:40:16

标签: jquery 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以及过滤值,但不要知道如何做到这一点。

1 个答案:

答案 0 :(得分:3)

我这样做你需要重置列,因为那里存储了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