Search 谷歌可视化-StringFilter-搜索w。或

Search 谷歌可视化-StringFilter-搜索w。或,search,filter,google-visualization,Search,Filter,Google Visualization,我已将stringfilters绑定到我的数据表 我希望从stringfilter中获得的是能够像处理查询一样进行搜索 有一个列,列上有名字——每行都有一个名字——例如“史蒂夫”、“莫妮卡”、“安德烈亚斯”、“迈克尔”、“史蒂夫”、“安德烈亚斯” 我想和StringFilter里的Monica和Steve同时坐两排 我希望能够像这样搜索 史蒂夫+莫妮卡 或 “史蒂夫”+“莫妮卡” 或 “史蒂夫”,“莫妮卡” 这是我的StringFilter之一: var stringFilter1

我已将stringfilters绑定到我的数据表

我希望从stringfilter中获得的是能够像处理查询一样进行搜索

有一个列,列上有名字——每行都有一个名字——例如“史蒂夫”、“莫妮卡”、“安德烈亚斯”、“迈克尔”、“史蒂夫”、“安德烈亚斯”

我想和StringFilter里的Monica和Steve同时坐两排


我希望能够像这样搜索

史蒂夫+莫妮卡

“史蒂夫”+“莫妮卡”

“史蒂夫”,“莫妮卡”


这是我的StringFilter之一:

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

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

,尝试添加多个以“+”(不带空格)分隔的名称

我添加的函数如下所示:

 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
}

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

谢谢。我真的希望有另一种解决方案,在那里它不是那么受限。但我真的很感激你的回答!由于限制存在于gooles getFilteredRows函数中,因此我创建了它的一个变体,在该变体中,您不用使用它们的函数,而是自己用过滤器检查所有行,在这里你可以看到一些变化。还移除了带上套管的约束。不过,我相信这对西里尔字母之类的字母不起作用。和以前一样,您可以用“+”分隔搜索短语。更多关于大写限制的信息可以找到,我也会为这个独特的方法发帖。
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();
});