2017-10-20 74 views
1

我正在使用Google可視化。我有一個數據表,我已經使用getFilteredRows()如何在Google可視化中查找表格的原始行索引(如果我有過濾行視圖)

當我在篩選表中選擇一行時,返回的行索引匹配屏幕上的行索引,但我需要能夠返回原始行索引底層的源數據表。

這可能嗎?

我見過一對夫婦使用上

table.getDataTable()。getTableRowIndex(currentRow)的變化職位

兩者的這些方法似乎卻不是可供使用了嗎?

有人知道解決方案嗎? 感謝

回答

0

getTableRowIndex是你的圖表包裝一個DataView方法

,如果你的dataTable屬性設置爲數據視圖
那麼你可以使用...

chartWrapper.getDataTable().getTableRowIndex(currentRow) 

然而, ,如果dataTable屬性是實際數據,
這種方法將無法使用(因爲它是一個數據視圖方法)


如果使用數據表和圖表包裝的view屬性設置rows
通過使用發現實際行...

chartWrapper.getView().rows[currentRow] 

看到下面的工作片段...

google.charts.load('current', { 
 
    packages: ['controls'] 
 
}).then(function() { 
 
    var data = google.visualization.arrayToDataTable([ 
 
    ['Year', 'Sales', 'Expenses', 'Profit'], 
 
    ['2012', 900, 700, 200], 
 
    ['2013', 890, 600, 290], 
 
    ['2014', 1000, 400, 200], 
 
    ['2015', 1170, 460, 250], 
 
    ['2016', 660, 1120, 300], 
 
    ['2017', 1030, 540, 350] 
 
    ]); 
 

 
    var chartTable = new google.visualization.ChartWrapper({ 
 
    chartType: 'Table', 
 
    containerId: 'chart_div', 
 
    dataTable: data, 
 
    view: { 
 
     rows: data.getFilteredRows([{ 
 
     column: 1, 
 
     minValue: 1000 
 
     }]) 
 
    } 
 
    }); 
 

 
    var testDiv = document.getElementById('test_div'); 
 
    google.visualization.events.addOneTimeListener(chartTable, 'ready', function() { 
 
    google.visualization.events.addListener(chartTable.getChart(), 'select', function() { 
 
     testDiv.innerHTML = ''; 
 
     var selection = chartTable.getChart().getSelection(); 
 
     for (var i = 0; i < selection.length; i++) { 
 
     var selectedRow = selection[i].row; 
 
     var dataTableRow = chartTable.getView().rows[selectedRow]; 
 
     var values = ''; 
 
     for (var col = 0; col < data.getNumberOfColumns(); col++) { 
 
      if (values !== '') { 
 
      values += ' -- '; 
 
      } 
 
      values += data.getValue(dataTableRow, col); 
 
     } 
 
     values += '<br/>'; 
 
     testDiv.insertAdjacentHTML('beforeEnd', values); 
 
     } 
 
    }); 
 
    }); 
 

 
    chartTable.draw(); 
 
});
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart_div"></div> 
 
<div id="test_div"></div>

+0

抱歉延誤。太好了,謝謝 - 這很有用 – MrPea

相關問題