Google图表表格-如果单元格为空,如何跳过超链接格式

时间:2019-09-06 08:26:04

标签: javascript google-visualization

我正在使用google.visualization.PatternFormat将列中的url格式化为Google Chart Table中的超链接。当前的方法会将整个列格式化为超链接。如果该列中的单元格为空,我想跳过格式。

  function handleSampleDataQueryResponse(response) {

    var data = response.getDataTable();

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

    var chartTbl = new google.visualization.Table(document.getElementById('dataTable'));
    chartTbl.draw(view, {showRowNumber: true, allowHtml: true, page: 'enable', pageSize: 5, width: '100%', height: '100%'
    });

由于该列是可选的,因此我想将单元格保留为空白,而不要使用一个无处不在的超链接。

1 个答案:

答案 0 :(得分:1)

您基本上是在尝试将FormatPattern放在条件中(例如(actual file host) port 80语句)。

我做了一些研究,看起来(至少在Ray能够确定this aging question的情况下),您可能需要遍历行以有条件地应用格式,因为{{3} }文档似乎并未为此提供一种机制。

幸运的是,PatternFormat文档为我们提供了一些对您的用例有用的功能,并且我希望您的代码例如可以使用ifgetFilteredRows并看起来像喜欢:

setFormattedValue

此代码将在将模式应用于所有行之后运行,目的是从目标单元格值为空字符串的任何行中删除新应用的格式(因为我希望Google返回一个空字符串作为空单元格的值;如果这些单元格的返回值实际上是其他值,例如var emptyRowInds = getFilteredRows([{column: 7, value: ''}]); var columnInd = 7; var formattedVal = null; // Alternatively, you could hard-code `formattedVal = '';` for (var rowInd = 0; rowInd < emptyRowInds.length; rowInd++){ setFormattedValue(emptyRowInds[rowInd], columnInd, formattedVal); } ,我们显然希望将其提供给null。)

请注意,此代码未经测试(实际上只是一个初步的猜测),但希望可以使您更接近解决方案。