2012-07-17 32 views
0

我正在使用Google Visualization API编写JavaScript网页工具。我想要的功能之一是点击一列,并有 - 没有选项的选项。当选择时,那个特定列将被隐藏。 我加入这个监听器,这个功能隐藏的列:用javascript隐藏Google可视化列

/* Define a table */ 
    var table = new google.visualization.ChartWrapper({ 
     'chartType': 'Table', 
     'containerId': 'chart2', 
     'options': { 
     'sortColumn': '-1', 
     'allowHtml' : 'true', 
     }, 
     'style' : { 
      'white-space' : 'nowrap' 
     } 
    }); 

    google.visualization.events.addListener(table, 'select', 
      function(){ 
       var tablewrapper = table.getChart(); 
       //var columnId = tablewrapper.getColumnDescriptions(); 
       //console.log(tablewrapper); 
       /*var columnIndex = tablewrapper.getViewColumnIndex(); */ 
       var selection = tablewrapper.getSelection(); 
       for(var i = 0; i < selection.length; i++){ 
        var item = selection[i]; 
        console.log('{row:' + item.row + ',column:' + item.column + '}'); 
       } 

      } 
    ); 

function hideColumn(columnIndex){ 
     $('#chart2 td:nth-child(' + (columnIndex+1) + ')').hide(); 
     return; 
     } 

然而,ev没有一个叫column属性,它可能指的是列索引。有人知道我该怎么做,如果我错过了什么? 谢谢!

回答

0

也许你需要一个Dataview?您可以使用hideColums()方法来隐藏指定的列。

底层DataTable的只读视图。 DataView允许仅选择列和/或行的子集。它还允许 重新排列列/行,并复制列/行。

视图是对基础DataTable实况窗口,...

编辑 getSelection()将是一个更适合你的问题,我猜。

+0

RobIII,我的脚本隐藏列很有效。我只需要弄清楚如何获得'columnIndex'。 – cybertextron 2012-07-17 21:42:17

+0

我注意到我错过了你的帖子上的一些信息。我的错。你看过调试器中的'ev'变量来看看它包含了什么吗?只是一个疯狂的猜测;你不需要[getSelection()](https://developers.google.com/chart/interactive/docs/reference#visgetselection)? – RobIII 2012-07-17 21:51:15

+0

如何输出'ev'来查看它包含的内容? – cybertextron 2012-07-17 21:52:36