mleibman / SlickGrid添加清除按钮

时间:2014-09-15 08:14:14

标签: jquery jquery-plugins slickgrid

如何在mleibman / SlickGrid中重置搜索选项我想添加一个清除过滤器按钮。

只是想知道他有任何内置功能可用或我们需要编写自定义 那个功能

2 个答案:

答案 0 :(得分:2)

以下是它的简短版本,我也测试了它。

// remove the text inside each search input fields
$('.slick-headerrow-column').children().val('');

// empty out all column filters within the columnFilters object & refresh dataview
for (var columnId in columnFilters) {
    columnFilters[columnId] = "";
}
dataView.refresh();

columnFilters变量非常重要,但根据您的代码可能会有不同的名称,但如果您查看此Slickgrid Example,您可以看到它被定义为var columnFilters = {};然后确保您有这段代码:

$(grid.getHeaderRow()).delegate(":input", "change keyup", function (e) {
  var columnId = $(this).data("columnId");
  if (columnId != null) {
    columnFilters[columnId] = $.trim($(this).val());
    dataView.refresh();
  }
});

将所有输入附加到对象变量columnFilters ...然后才能使用我给出的代码(在我测试时对我有效)

答案 1 :(得分:0)

答案有效,但如果页面上有多个SlickGrid,则可能会出现问题。

$('.slick-headerrow-column').children().val('');

将重置页面上所有网格的所有过滤器。另一种选择是使用:

if ($(grid.getHeaderRow())) {
    $(grid.getHeaderRow()).find("input").val("");
}

其中grid是SlickGrid组件的名称。这只会重置该网格。

其余代码:

for (var columnId in columnFilters) {
    columnFilters[columnId] = "";
}

适合我!