【问题标题】:Slickgrid spreadsheet plugin clear all filtersSlickgrid 电子表格插件清除所有过滤器
【发布时间】:2017-09-18 06:40:16
【问题描述】:

我有一个带有这个过滤插件的 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
  }
})

我假设我需要遍历列并将 filterValues 设为 0,但我一辈子都不知道该怎么做。

【问题讨论】:

    标签: jquery slickgrid


    【解决方案1】:

    我这样做你需要重置列,因为那是存储文件值的地方

    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
    

    【讨论】:

    • 非常感谢迈克尔。它也将过滤器图标更改回默认箭头,这很棒。
    猜你喜欢
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2014-09-14
    • 2013-01-21
    • 2020-06-02
    • 1970-01-01
    相关资源
    最近更新 更多