无效的列索引未定义.取值范围为[0-8]之间的整数

Invalid column index undefined. Should be an integer in the range [0-8]

本文关键字:之间 整数 索引 未定义 无效 范围      更新时间:2023-09-26
     <script type="text/javascript">
//        google.load('visualization', '1.1', { packages: ['controls'] });
        google.load('visualization', '1', { packages: ['table'] });
    </script>

   <script type="text/javascript">
            function drawVisualization(dataValues, chartTitle, columnNames, categoryCaption) {
                if (dataValues.length < 1)
                    return;
                var data = new google.visualization.DataTable();
                data.addColumn('string', columnNames.split(',')[0]);
                data.addColumn('string', columnNames.split(',')[1]);
                data.addColumn('string', columnNames.split(',')[2]);
                data.addColumn('string', columnNames.split(',')[3]);
                data.addColumn('string', columnNames.split(',')[4]);
                data.addColumn('string', columnNames.split(',')[5]);
                data.addColumn('number', columnNames.split(',')[6]);
                data.addColumn('number', columnNames.split(',')[7]);
                data.addColumn('string', 'Email');
                for (var i = 0; i < dataValues.length; i++) {
                    data.addRow([dataValues[i].Value1, dataValues[i].Value2, dataValues[i].Value3, dataValues[i].Value4, dataValues[i].Value5, dataValues[i].Value6, dataValues[i].Value7, dataValues[i].Value8, 'contactus.aspx']);
                }

                var table = new google.visualization.Table(document.getElementById('TableContainer'));
                var formatter = new google.visualization.PatternFormat('<a href="{8}">{7}</a>');
                formatter.format(data, [7, 8]); // Apply formatter and set the formatted value of the first column.
                var view = new google.visualization.DataView(data);
                view.setColumns([0,1,2,3,4,5,6,7]); // Create a view with the first column only.
                table.draw(view, { allowHtml: true, showRowNumber: true });
            }
        </script>

简短的谷歌图表代码;参考https://developers.google.com/chart/interactive/docs/reference?hl=de-DE#patternformatter我试着添加链接按钮;我不能有人告诉我我哪里错了;请参考一些链接给我…谢谢你。

问题出在以下几行:

var formatter = new google.visualization.PatternFormat('<a href="{8}">{7}</a>');
formatter.format(data, [7, 8]);

模式中的数字指向传递给格式化程序的数组的索引,而不是列的索引。在您的例子中,模式应该像这样:

var formatter = new google.visualization.PatternFormat('<a href="{1}">{0}</a>');

,因为您想使用格式化器中的第一列作为链接的文本,并使用格式化器中的第二列作为href属性。