如何在mleibman / SlickGrid中重置搜索选项我想添加一个清除过滤器按钮。
只是想知道他有任何内置功能可用或我们需要编写自定义 那个功能
答案 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] = "";
}
适合我!