Google Visualization - StringFilter - 搜索w。要么

时间:2015-05-19 08:58:12

标签: search filter google-visualization

我有stringfilters绑定到我的数据表。

我想从stringfilter获得的是能够像查询一样进行搜索。

有一个名字的colomn - 每一行的名称 - 例如 - " Steve"," Monica"," Andreas","迈克尔""史蒂夫""安德烈亚斯",...

我希望在StringFilter中同时拥有Monica和Steve两行。

我希望能够像这样搜索

史蒂夫+莫妮卡

"史蒂夫" +"莫妮卡"

"史蒂夫""莫妮卡"

这是我的一个字符串过滤器:

    var stringFilter1 = new google.visualization.ControlWrapper({
    controlType: 'StringFilter',
    containerId: 'string_filter_div_1',
    options: {
        filterColumnIndex: 0, matchType : 'any' 
    }
});

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,最后我创建了自己的函数来过滤我的行。我用你描述的功能做了一个例子,但我不确定它是最好的还是正确的方式,但它有效。
一个缺陷是你需要输入与输入名称完全相同的名称,全名和大写字母。

Fiddle,尝试添加多个以“+”分隔的名称(并且没有空格)。

我添加的功能如下:

 function redrawChart(filterString) {
    var filterWords = filterString.split("+")
    var rows = []

    for(i = 0; i < filterWords.length; i++) {
        rows = rows.concat(data.getFilteredRows([{value:filterWords[i], column:0}]))
    }

    return rows
}

侦听字符串输入中的更新的侦听器如下所示:

google.visualization.events.addListener(control, 'statechange', function () {

    if (control.getState().value == '') {
        realChart.setView({'rows': null})
    }else{
        realChart.setView({'rows': redrawChart(control.getState().value)})
    }
         realChart.draw();
});

可能不是一个完整的解决方案,但也许是一些新的想法和指导你自己的想法。