如何在谷歌可视化中组合数字和模式格式化程序
How to combine number and pattern formatters in Google Visualization?
我有一种在表中显示链接的模式格式:
var options = { allowHtml: true,
cssClassNames: someClass,
width: 10,
height: 10
};
var patterFormat = '<a href="http://somelink/{0}">{0}</a>';
var formatter = new google.visualization.PatternFormat(patterFormat);
formatter.format(tableData, [0, 0]);
table.draw(tableData, options);
{0}
只是ID(例如12345)。
由于某种原因,最近这段代码的结果发生了变化(可能是一些更新),现在我得到了一个带有十进制分隔符的HTML页面ID,例如<a href="http://somelink/12,345">12,345</a>
,而不仅仅是12345。分隔符的类型取决于电脑的本地设置。我知道我可以设置数字格式并去掉分隔符,但这样我就会失去链接。有人能建议我如何设置图案的数字格式吗?
您可以将数字格式与图案格式相结合
只需要先使用数字格式
参见以下示例中的User Id
列
另一个选项是直接在data
中提供数字格式
数据表中的每个单元格都可以有一个值(v:
)和一个格式化值(f:
)
对于Customer Id
列,提供了格式化的值,因此只需要使用Pattern Format
google.charts.load('current', {
callback: function () {
var data = new google.visualization.DataTable({
cols: [
{label: 'Start Date', type: 'date'},
{label: 'User Id', type: 'number'},
{label: 'Customer Id', type: 'number'},
{label: 'Amount', type: 'number'}
],
rows: [
{c:[{v: new Date('2016, 01, 01')}, {v: 44836}, {v: 067205, f: '067205'}, {v: 1122}]},
{c:[{v: new Date('2016, 01, 01')}, {v: 86495}, {v: 067205, f: '067205'}, {v: 332}]},
{c:[{v: new Date('2016, 01, 01')}, {v: 44836}, {v: 228626, f: '228626'}, {v: 0}]},
{c:[{v: new Date('2016, 01, 01')}, {v: 86495}, {v: 228626, f: '228626'}, {v: 334}]},
{c:[{v: new Date('2016, 02, 01')}, {v: 44836}, {v: 067205, f: '067205'}, {v: 554}]},
{c:[{v: new Date('2016, 02, 01')}, {v: 86495}, {v: 067205, f: '067205'}, {v: 0}]},
{c:[{v: new Date('2016, 02, 01')}, {v: 44836}, {v: 228626, f: '228626'}, {v: 0}]},
{c:[{v: new Date('2016, 02, 01')}, {v: 86495}, {v: 228626, f: '228626'}, {v: 544}]},
]
});
// format User Id number first
var numberFormat = new google.visualization.NumberFormat({
pattern: '0'
});
numberFormat.format(data, 1);
// format User Id pattern
var formatter = new google.visualization.PatternFormat(
'<a href="http://somelink/{1}">{0}</a>'
);
formatter.format(data, [0, 1], 1);
// format Customer Id pattern
formatter = new google.visualization.PatternFormat(
'<a href="http://somelink/{1}">{0}</a>'
);
formatter.format(data, [0, 2], 2);
new google.visualization.ChartWrapper({
chartType: 'Table',
containerId: 'table-div',
dataTable: data,
options: {
allowHtml: true
},
view: {'columns': [1, 2, 3]}
}).draw();
},
packages: ['corechart', 'table']
});
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="table-div"></div>
相关文章:
- 如何在谷歌可视化中组合数字和模式格式化程序
- node.js可以识别字符模式,但不能识别数字模式
- 我应该使用什么正则表达式来验证数字模式
- 如何显示/绘制以数字作为输入的屏幕锁定模式
- JavaScript - 将字母数字模式与正则表达式匹配
- 如何提取与某些模式不匹配的数字
- 我如何在文本输入字段中输入数字,而无需在 JavaScript 或 jQuery 中输入模式
- 数字、字母块的正则表达式模式匹配
- 正则表达式模式字母数字和美元符号
- 带有输入模式的 Javascript 数字和逗号
- 为什么输入模式属性不适用于数字
- Javascript RegEx 正好是一个数字模式
- JavaScript正则表达式模式,用于3个字母数字和3个句号
- 提取两种模式之间的数字 javascript
- 仅数字的 ng 模式将接受像 “-” 这样的字符,例如 Angular.js
- 为什么在严格模式下不允许使用八进制数字文字(解决方法是什么?)
- ng模式,该模式允许字母数字,但在angular js中没有用于输入标签的空格
- 列表中最频繁出现的数字(模式)-只想获得最高的值
- 在JavaScript中实现1、2、3、1、2、3这样的数字模式
- JS RegEx的挑战:替换重复出现的逗号和数字模式