properties - Google Chart getSelection 没有列属性

标签 properties google-visualization getselection

当我使用时:

chart.getChart().getSelection()[0]

在图表上(来自图表包装器,因此首先是 getChart()),getSelection() 函数返回 只有行属性但没有列属性,即使我的“图表”是一个表格并且单击其中的任意位置都应该返回行和列属性。

这是一个已知的谷歌图表错误吗?有谁知道解决方法?

我还在 Google 群组中找到了这个主题: https://groups.google.com/forum/#!topic/google-visualization-api/O_t7-s96A9w

他们在这里说: 目前 Table 对象仅支持行选择,因此列属性始终未定义。如果这对您很重要,您可以通过在每个单元格的格式化值中添加一些特殊的 html 代码来自己捕获这些事件。

有人知道如何做到这一点吗?

最佳答案

尽管 google.visualization.table 仅支持行选择(这解释了列属性返回 null 的原因),您也可以考虑使用以下方法来访问列属性:

google.load('visualization', '1', {
    packages: ['table']
});
google.setOnLoadCallback(drawTable);

function drawTable() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('number', 'Salary');
    data.addColumn('boolean', 'Full Time Employee');
    data.addRows([
      ['Mike', {
          v: 10000,
          f: '$10,000'
      },
        true
      ],
      ['Jim', {
          v: 8000,
          f: '$8,000'
      },
        false
      ],
      ['Alice', {
          v: 12500,
          f: '$12,500'
      },
        true
      ],
      ['Bob', {
          v: 7000,
          f: '$7,000'
      },
        true
      ]
    ]);

    var table = new google.visualization.Table(document.getElementById('table_div'));
    google.visualization.events.addListener(table, 'select', function(){
        selectHandler(table);
    });
    table.draw(data, {
        showRowNumber: false
    });
}



function selectHandler(table) {
  var selection = table.getSelection();
  if(selection.length === 0)
      return;

  var e = event || window.event;
  var cell = e.target; //get selected cell
 
  document.getElementById('output').innerHTML = "Row: " +  selection[0].row + " Column: " +  cell.cellIndex;

}
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<div id="table_div"></div>
<div id="output"></div>

关于properties - Google Chart getSelection 没有列属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20165281/

相关文章:

javascript - 谷歌折线图如何不插入缺失数据

javascript - 在外部域上使用 Javascript 访问 Iframe

php - 构建一个组件

属性文件变量串联

分配相同的值时不调用 c# 属性 setter

javascript - 从另一个框架中获取选定的文本

javascript - jQuery:如何包装选定的文本

javascript - 如何将对象内部的属性合并为一个属性?

google-visualization - 无效查询 : SELECT_WITH_AND_WITHOUT_AGG in Google Query Language

javascript - 使用 Google Charts 创建整页背景折线图