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();
});
可能不是一个完整的解决方案,但可能有一些新的想法和方向,您自己的想法。
我有字符串过滤器绑定到我的 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();
});
可能不是一个完整的解决方案,但可能有一些新的想法和方向,您自己的想法。