2

テーブルと文字列フィルタリングボックスを含むダッシュボードがあります。テーブルを操作して、行を選択し、そこからそれぞれのデータを取得できるようにしたいと思います。

わずかな変更の後、getSelection()メソッドが機能するようになりましたが、別の問題が発生しました。以下のコードを使用して、テーブルをフィルタリングしてから、行データを選択して取得しようとしています。実際のデータの番号と行番号が一致していません。つまり、事前にフィルタリングされたテーブルを参照して行データにアラートを送信することになります...繰り返しになりますが、提案は高く評価されます。

       var dashboard, table, data;

  function drawVisualization() {

    var array = new Array(['ticker','time','bid','open','high','low','volume']);
    var ticker, time, bid, open, high, low, volume; 
        $.get('php/getdata.php', {input: 'stocklist'}, function(data1){

        $.each(data1, function(index, value){           
            ticker = value.ticker;
            time = value.time;
            bid = parseFloat(value.bid);
            open = parseFloat(value.open);
            high = parseFloat(value.high);
            low = parseFloat(value.low);
            volume = parseFloat(value.volume);
            array.push([ticker, time, bid, open, high, low, volume]);
        });

    data = google.visualization.arrayToDataTable(array);

    var stringFilter = new google.visualization.ControlWrapper({
      'controlType': 'StringFilter',
      'containerId': 'control1',
      'options': {
        'filterColumnLabel': 'ticker'
      }
    });

    table = new google.visualization.ChartWrapper({
      'chartType': 'Table',
      'containerId': 'chart1',
      'options': {'showRowNumber': false, 'height': '130px', 'width': '1000px'}
    });

    dashboard = new google.visualization.Dashboard(document.getElementById('dashboard'))
    dashboard.bind(stringFilter, table);
    dashboard.draw(data);

    google.visualization.events.addListener(table, 'select', selectHandler);
  }, "json");
  }

  function selectHandler() {
    var selection = table.getChart().getSelection();

  for (var i = 0; i < selection.length; i++) {
    var item = selection[i];
    if (item.row != null && item.column != null) {
        } else if (item.row != null) {
        stockID = data.getFormattedValue(item.row, 0);
        } else if (item.column != null) {
        stockID = data.getFormattedValue(0, item.column);
        }
    }
    if (stockID == '') {
    return;
    }       
alert(stockID);
}

  google.setOnLoadCallback(drawVisualization);
4

1 に答える 1