Google 可视化 - StringFilter - 搜索 w。要么

Google Visualization - StringFilter - Searching w. OR

我有字符串过滤器绑定到我的 table 数据。

我想从 stringfilter 得到的是能够像您使用查询一样进行搜索。

有一个带有名称的列 - 每行一个名称 - 例如 - "Steve"、"Monica"、"Andreas"、"Michael"、"Steve" ,"Andreas",...

我想在 StringFilter 中包含 Monica 和 Steve 的两行。


我希望能够像这样搜索

史蒂夫+莫妮卡

"Steve"+"Monica"

"Steve","Monica"


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

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

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

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();
});

可能不是一个完整的解决方案,但可能有一些新的想法和方向,您自己的想法。