首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多列引导表过滤器

多列引导表过滤器
EN

Stack Overflow用户
提问于 2016-09-29 21:09:57
回答 2查看 21.4K关注 0票数 2

我用的是文志新的“鞋带表”。我需要用几列过滤。例如,我需要过滤国家,然后是城市。

表中的每个字段有两个选择字段(和select )。

我现在所做的方法是将filterBy方法应用于select选项的更改:

代码语言:javascript
复制
    $('#countries-list').on('change', function (evt) {
        var selectedCountry = $('#countries-list').select2('val');
        if (selectedCountry == "all") {
            $tableFilter.bootstrapTable('filterBy');
        } else {
            $tableFilter.bootstrapTable('filterBy', {country: selectedCountry});                
        }
    });

    $('#cities-list').on('change', function (evt) {
        var selectedCity = $('#cities-list').select2('val');
        if (selectedCity == "all") {
            $tableFilter.bootstrapTable('filterBy');
        } else {
            $tableFilter.bootstrapTable('filterBy', {city: selectedCity});              
        }
    });

问题是他们相互覆盖。对于如何将第二个过滤器应用于第一个过滤器的结果,而不是整个数据集,我将不胜感激。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-10-09 09:37:39

我建议您使用引导表扩展Filter-Control.。

票数 5
EN

Stack Overflow用户

发布于 2020-02-18 10:35:09

这是个相当老的问题,但我今天也在为同样的问题而挣扎,我只是想出了一个解决办法。

设置所需变量:

代码语言:javascript
复制
var $table = $('#table-id')
var FilterOptions = {}

创建一个函数来检查对象是否为空:

代码语言:javascript
复制
function isEmpty(obj) {
        for(var key in obj) {
            if(obj.hasOwnProperty(key))
                return false;
        }
        return true;
    }

在isEmpty()函数的帮助下,创建一个筛选表的函数:

代码语言:javascript
复制
function FilterTable(){
        if(isEmpty(FilterOptions)){
            $table.bootstrapTable('filterBy', {})
        } else {
            $table.bootstrapTable('filterBy', FilterOptions)
        }
    }

然后,对于我们的每个select字段,我们将创建一个函数,根据所选内容向我们的FilterOptions对象添加/更改属性,或者如果选择默认选项(本例中为“all”),则删除该属性。最后,我们使用FilterTable()函数对表进行筛选。

代码语言:javascript
复制
$('#Selector_column1_filter').change(function(){
        if ($(this).val() != "all") {
            FilterOptions.column1 = $(this).val();
        } else {
            delete FilterOptions.column1;
        }
        FilterTable();
    })
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39780073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档