我正在使用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%'
});
由于该列是可选的,因此我想将单元格保留为空白,而不要使用一个无处不在的超链接。
答案 0 :(得分:1)
您基本上是在尝试将FormatPattern放在条件中(例如(actual file host) port 80
语句)。
我做了一些研究,看起来(至少在Ray能够确定this aging question的情况下),您可能需要遍历行以有条件地应用格式,因为{{3} }文档似乎并未为此提供一种机制。
幸运的是,PatternFormat文档为我们提供了一些对您的用例有用的功能,并且我希望您的代码例如可以使用if
和getFilteredRows
并看起来像喜欢:
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
。)
请注意,此代码未经测试(实际上只是一个初步的猜测),但希望可以使您更接近解决方案。