是否可以防止在谷歌图表对象中触发默认排序事件?如果我们从code playground获取示例,那么如何调整以便例如点击" age"以防止排序发生。头?
即。对表格表做任何事情(我的想法是在所有标题中进行默认排序,除了在一个标题中,其他点击事件(由外部js中的事件监听器管理)将被触发但不触发排序事件(因此没有出现小排序箭头))
例如,以下操作无效(它仍然调用默认的排序方法):
function drawVisualization() {
var table = new google.visualization.Table(document.getElementById('table'));
table.draw(sortData, null);
var chart = new google.visualization.BarChart(document.getElementById('chart'));
chart.draw(sortData, null);
google.visualization.events.addListener(table, 'sort',
function(event) {
if(event.column != 1){
sortData.sort([{column: event.column, desc: !event.ascending}]);
chart.draw(sortData, null);
}
}
);
}
感谢您提出任何指示
答案 0 :(得分:1)
将表格的sort
选项设置为event
。这会禁用默认排序,并在单击标题时使图表抛出“排序”事件。如果您想要正确跟踪排序,则需要使用sortColumn
和sortAscending
选项集重绘图表:
var options = {
sort: 'event'
};
google.visualization.events.addListener(table, 'sort', function(event) {
if(event.column != 1) {
options.sortColumn = event.column;
options.sortAscending = event.ascending;
sortData.sort([{column: event.column, desc: !event.ascending}]);
table.draw(sortData, options);
}
});
[编辑 - 根据游乐场代码使用表格自定义排序功能的完整代码]
function drawVisualization() {
var options = {
sort: 'event'
};
var table = new google.visualization.Table(document.getElementById('table'));
table.draw(sortData, options);
var chart = new google.visualization.BarChart(document.getElementById('chart'));
chart.draw(sortData, null);
google.visualization.events.addListener(table, 'sort', function(event) {
if(event.column != 1) {
options.sortColumn = event.column;
options.sortAscending = event.ascending;
sortData.sort([{column: event.column, desc: !event.ascending}]);
table.draw(sortData, options);
}
});
}