Google visualization 查看DataView是否为空的简单方法?

Google visualization 查看DataView是否为空的简单方法?,google-visualization,dataview,Google Visualization,Dataview,使用GoogleVisualizationAPI,是否有一种简单的方法可以查看DataView是否为空 我可以看到可能使用dataView.getValue0、1等检查空值,但它也包含列标题 我猜这很棘手,因为dataview可能有许多不同的格式,但是有没有一种检查空数据视图的通用方法?我正在使用dataview制作饼图。如果我没记错的话,这样做很容易 var predata = response.getDataTable(); var vals = new Array(); var rownu

使用GoogleVisualizationAPI,是否有一种简单的方法可以查看DataView是否为空

我可以看到可能使用dataView.getValue0、1等检查空值,但它也包含列标题


我猜这很棘手,因为dataview可能有许多不同的格式,但是有没有一种检查空数据视图的通用方法?我正在使用dataview制作饼图。

如果我没记错的话,这样做很容易

var predata = response.getDataTable();
var vals = new Array();
var rownum = predata.getNumberOfRows();
// Make sure our data isn't empty.
if (null==predata) // yoda was here
return;
返回数据源返回的数据表。如果 查询执行失败,未返回任何数据


通过阅读文档,您似乎在寻找dataView.getNumberOfRows。然而,在调用之前,您需要获取过滤后的空行,然后隐藏它们。这里使用的是Google代码游乐场,我检查一列是否为null,然后隐藏该行是否为null。将该示例中Google代码的默认JavaScript替换为以下内容:

function drawVisualization() {
  var dataTable = google.visualization.arrayToDataTable([
    ['Name',   'Age', 'Instrument', 'Color'],
    [null,   null,     null,    null],
    ['Paul',   52,     'Sitar',     'Red'],
    ['George', 16,     'Guitar',    'Green'],
    ['Ringo',  72,     'Drums',     'White']
  ]);

  var table = new google.visualization.Table(document.getElementById('table'));
  table.draw(dataTable, null);

  var dataView = new google.visualization.DataView(dataTable);

  // Get rows where the 2nd column contains null
  var filteredRows = dataView.getFilteredRows([{column: 1, value:null}]); 
  console.log(filteredRows);

  dataView.setColumns([0, 1]);

  // Hide the filtered rows returned
  dataView.hideRows(filteredRows);

  // Check the number of rows that now exist
  console.log(dataView.getNumberOfRows());

  var chart = new google.visualization.ColumnChart(document.getElementById('chart'));
  chart.draw(dataView, {width: 400, height: 200});
}

看起来不太对

也许我应该在客户端看到数据之前,在服务器端将null替换为0

我求助于:

if (dataView.getValue(0, 1) === null || dataView.getValue(1, 1) === null || dataView.getValue(2, 1)) === null)
其中,我的dataview结构是:

Column Title 1 | Data Column Title 2 | Data Column Title 3 | Data
我可以帮你。当应用于沿Y轴可视化的列时,它适用于折线图。

谢谢Jacob,我尝试过了,但没有效果,因为即使行为空,它仍然会返回行数。这可能就是我构建datatable json服务器端的方式。@Alex Key我已经用一个可能适用于您的示例更新了我的答案。我认为您需要首先使用getFilteredRows检查null,然后隐藏null行。感谢Najzero,这可能只是因为我的数据表中仍然包含数据,但它是null。可能只是因为我的数据构造得很奇怪。我使用一个记录集生成数据服务器端,因此如果行没有数据,将插入null。也许我的情况是边缘情况,因此我发现很难将API与之一起使用。null通常表示“无数据”,而0 zero在大多数情况下是一个有效的数值,因此在常见情况下用0 zero替换null不是一个可接受的选项…谢谢,我知道你的答案是+1,但我必须承认我的问题来自2013年的前世,所以我无法测试它。但是谢谢你的帮助。我会让一个版主标记为答案,如果它证明对其他人有成效!