如何设置第一次单击排序以在谷歌图表表中降序

时间:2014-10-28 15:18:38

标签: sorting google-visualization

我有一个充满数据的谷歌图表。 现在,当用户尝试对表进行排序时(通过单击其中一个列的标题),数据将按升序排序,然后第二次单击会再次对数据进行排序,这次是降序。 我想要改变这种行为,并首先点击“之前未排序的”'列为降序排序,第二次单击升序排序。

例如,在此http://jsfiddle.net/wrebr0ze/中首次点击" Salary"标题应该是12,500美元出现在顶部。首先点击"姓名"标题应该让迈克出现在最前面。

我尝试查看sort事件,但是虽然我可以捕获它,但我不想自己对数据进行排序,只是想让它触发正确的操作。 我看了api这样的选项,但没有运气,sortAscending只适用于初始排序(在数据显示之前),而不是以后。

1 个答案:

答案 0 :(得分:2)

不幸的是,没有一种简单的方法来扭转这种行为。不过,这里有一个使用sort事件的解决方法:

var sorting={};
function drawTable() {
// ...code
       var table = new google.visualization.Table(document.getElementById('table_div'));

      google.visualization.events.addListener(table, 'sort', function(e){
      if(!sorting.hasOwnProperty('column')){
          sorting=e;
      }
      if(sorting.column==e.column){
          sorting.desc=sorting.ascending;
          sorting.ascending=!sorting.ascending;
      }else{
          sorting.desc=true;
          sorting.ascending=false;
          sorting.column=e.column;
      }    
      data.sort([sorting]);
      table.draw(data, {showRowNumber: true});
      })
      table.draw(data, {showRowNumber: true, sortAscending: false});

完全小提琴:http://jsfiddle.net/wrebr0ze/1/