sorting - 如何在谷歌图表中将首次点击排序设置为降序

标签 sorting google-visualization

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

例如,在此 http://jsfiddle.net/wrebr0ze/ 中,第一次点击“Salary”标题应该会使 $12,500 出现在顶部。第一次单击“名称”标题应该使迈克出现在顶部。

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

最佳答案

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

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

完整 fiddle :http://jsfiddle.net/wrebr0ze/1/

关于sorting - 如何在谷歌图表中将首次点击排序设置为降序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26611972/

相关文章:

javascript - 在窗口中重新调整 Google 图表的大小

php - 来自 phpmyadmin 数据库的 Google 图表

javascript - 具有多个条件的自定义 array.sort 函数,包括。 bool 值

php - 支持 Unicode 的 PHP 中的自然排序算法?

ios - 应用两次排序无法正常工作

javascript - 谷歌绘制具有相同比例的多个系列的图表

javascript - Googlecharts - 注释图表 - 第一列必须包含日期或日期时间

google-visualization - 根据时间对记录进行排序甘特图

c++ - 对指针列表进行排序

sql - 如何根据上一行的值对sql结果进行排序?