【问题标题】:Dynamically add Rows and Columns in Google Chart在谷歌图表中动态添加行和列
【发布时间】:2017-05-12 14:42:41
【问题描述】:

我正在研究谷歌图表,并希望在谷歌图表中动态添加行和列。我尝试使用下面的 ajax 但它不起作用。

这里NumCols 未定义并在添加行时出错

未捕获的错误:如果参数被赋予 addRow,它必须是一个数组,或者为空

阿贾克斯:-

 $.ajax({
        type: 'POST',
        dataType: 'json',
        contentType: 'application/json',
        url: '/home/DrawChart',     
        data: '{}',
        success: function (chartsdataSet) {             
            data = new google.visualization.DataTable();

            var chartsdata = JSON.parse(chartsdataSet).Table;

            var numRows = chartsdata.length;
            var numCols = chartsdata[0].length;

            data.addColumn('string', chartsdata[0][0]);

            // all other columns are of type 'number'.
            for (var i = 1; i < numCols; i++)
                data.addColumn('number', chartsdata[0][i]);

            // now add the rows.
            for (var j = 1; j < numRows; j++)
                data.addRow(chartsdata[j]);
        chart = new google.visualization.Table(document.getElementById('Graph1')); 
        chart.draw(data, options);   
    });

解析后的JSON对象:-

【问题讨论】:

    标签: javascript google-api visualization


    【解决方案1】:

    使用下面的循环我得到动态的行和列。

     $.ajax({
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json',
            url: '/home/DrawChart',     
            data: '{}',
            success: function (chartsdataSet) {             
                data1 = new google.visualization.DataTable();
    
                var chartsdata1 = JSON.parse(chartsdataSet).Table;
                var myVal = [];
                var colName;
                var colCount = 0;
                for (var i = 0; i < chartsdata1.length; i++) {
                    var row = chartsdata1[i];
                    myVal.length = 0;
                    $.each(row, function (key, value) {
                        if (i == 0) {
                            if (colCount == 0) {
                                colName = key;
                                data1.addColumn('string', colName);
                                colCount += 1;
                            }
                            else {
                                data1.addColumn('number', key);
                            }
                        }
                        myVal.push(value);
                    }); data1.addRow(myVal);
                }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多