0

我有一个 google.visualization 数据表,可以正确显示数据源传递的值

但是,如果我尝试向数据表添加格式化程序,那么它会失败并且不显示数据表

这是“dataTable”中数据的格式

数据表=对象{列=[2],行=[2]}

cols [对象 { type="string", id="Description", label="Description"}, Object { type="number", id="1", label="1"}]

0 对象 { type="string", id="Description", label="Description"}

1 个对象 { type="number", id="1", label="1"}

[对象 { c=[2] }]

0 对象 { v=59.38}

1 个对象 { v=19.12}

该表正确显示如下:

说明 | 1


第一价值 | 59.38

第二值 | 19.12

这是我使用的代码,它产生上述结果......

       var dtWrapper = new google.visualization.ChartWrapper({
            chartType: "Table",
            dataTable: dataTable,
            options: {width: tableWidth},
            containerId: tableHolder
        });

        // here the formatter will be inserted (before .draw)

        dtWrapper.draw();

如果我插入以下格式化程序代码,则会在控制台中引发错误:

        var formatter = new google.visualization.NumberFormat(
              {prefix: "Value: "});
        formatter.format(dataTable, 1); // Apply formatter to second column

这是我在 firebug- 控制台中看到的错误消息:

类型错误:a[da] 不是函数

...is.N?K:t(this.N))&&0>d&&ala}}});$[H].formatValue=function...

http://www.google.com/uds/api/visualization/1.0/4086f2e8fc632adc52e6d6795a5637a4/format+de,default,controls,corechart.I.js

56 号线

这是我的 ashx-handler 移交的数据:

dataTable =  
{
"cols": 
  [
     {"type": "string" , "id": "Timerange" ,"label": "Timerange"},
     {"type": "number" ,"id": " 2013" ,"label": " 2013" }
  ], 
"rows" :
   [
     {"c" : [
              {"v": "< 15"}, {"v": 0}
            ]
     },
     {"c" : [
              {"v": "16 - 20"}, {"v": 15.63}
            ]
     }, 
     {"c" : [
               {"v": "21 - n"}, {"v": 15.63}
            ]
     },
     {"c" : [
              {"v": "> n"}, {"v": 68.75}
            ]
     }
  ]
} 

请问有人可以帮忙解决这个问题吗?

提前感谢您的任何指导唐

4

1 回答 1

2

如果dataTable只包含“cols”和“rows”属性,那么它不是一个合适的 DataTable 对象。猜测dataTable是这样的:

var dataTable = {
    cols: [
        {type: 'string', id: 'Description', label: 'Description'},
        {type: 'number', id: '1', label: '1'}
    ],
    rows: [
        {c: [{v: 'First Value'}, {v: 59.38}]},
        {c: [{v: 'Second Value'}, {v: 19.12}]}
    ]
};

正确的?如果是这样,那么您需要将其传递给 DataTable 构造函数:

var data = new google.visualization.DataTable(dataTable);

然后,您可以使用 格式化和绘制表格data

编辑:

这是一个示例小提琴,展示了如何使这项工作:http: //jsfiddle.net/asgallant/vT4Re/

于 2013-09-04T14:59:28.160 回答