Javascript 如何在google dashboard表中为TR赋值
我正在使用Google Dashboard的表功能,我想将id的值分配给创建的每一行的tr,我有如下数组Javascript 如何在google dashboard表中为TR赋值,javascript,jquery,google-visualization,google-datatable,Javascript,Jquery,Google Visualization,Google Datatable,我正在使用Google Dashboard的表功能,我想将id的值分配给创建的每一行的tr,我有如下数组 var data = google.visualization.arrayToDataTable([ ['Name', 'Donuts eaten','id'], ['Michael' , 5,'1'], ['Elisa', 7,'2'], ['Robert', 3,'3'], ['John', 2,'4'], [
var data = google.visualization.arrayToDataTable([
['Name', 'Donuts eaten','id'],
['Michael' , 5,'1'],
['Elisa', 7,'2'],
['Robert', 3,'3'],
['John', 2,'4'],
['Jessica', 6,'5'],
['Aaron', 1,'6'],
['Margareth', 8,'7']
]);
var table = new google.visualization.ChartWrapper({
'chartType': 'Table',
'containerId': 'chart2',
dataTable: data,
'options': {
'width': '500px'
}
});
table.draw();
我仍然无法确定是否有某种方法可以将值绑定到DOM元素。如果有任何帮助,我将不胜感激。以最简单的形式,可以按以下方式完成:
tr.id=集装箱运输 表可视化中不支持将ID分配给
tr
。您必须手动解析创建的HTML以进行适当的设置。这里有一个解决方案,使用JQuery:
google.visualization.events.addListener(table, 'ready', function () {
$('#chart2 .google-visualization-table-tr-odd, #chart2 .google-visualization-table-tr-even').each(function (e) {
var idx = $('td:nth-child(2)', this).html();
$(this).attr('id', 'row' + idx);
});
});
要删除ID列,请执行以下操作:
google.visualization.events.addListener(table, 'ready', function () {
$('.google-visualization-table-tr-head td:nth-child(3)').remove();
$('#chart2 .google-visualization-table-tr-odd, #chart2 .google-visualization-table-tr-even').each(function (e) {
var td = $('td:nth-child(2)', this)
var idx = td.html();
td.remove();
$(this).attr('id', 'row' + idx);
});
});
考虑到排序:
function tableCleanUp() {
google.visualization.events.addListener(table.getChart(), 'sort', tableCleanUp2);
tableCleanUp2();
}
function tableCleanUp2() {
$('.google-visualization-table-tr-head td:nth-child(3)').remove();
$('#chart2 .google-visualization-table-tr-odd, #chart2 .google-visualization-table-tr-even').each(function (e) {
var td = $('td:nth-child(2)', this)
var idx = td.html();
td.remove();
$(this).attr('id', 'row' + idx);
});
}
google.visualization.events.addListener(table, 'ready', tableCleanUp);
在哪里使用它?ContainerId应该是整个集装箱的ID,我想不只是1 TR,怎么办?可能是可以接受的答案。我已经尝试过,但没有成功:(没有简单的方法可以做到这一点。您必须解析您的表,使表单元格中的值与DataTable中的值相匹配,以便唯一地标识一行(如果某些行具有重复的数据,这可能是不可能的)。如果你有一个单元格,每行都有一个唯一的键值,这是最简单的。如果你允许一个无耻的产品插件,我现在有一个开源(根据GPLv3授权)的beta版表格可视化,它提供的功能超过默认的Google表格可视化,包括分配属性(如id)的能力你可以在这里找到:。这是一个测试版产品(读:可能有很多未发现的bug),所以我认为它还没有为生产环境做好准备,但是如果我能找到一些活跃的测试人员,这些bug会很快被解决。请阅读asgallant的回答和最后的评论。使用插件并帮助改进或制作自己的…:)制作自己的特定工作非常简单,但此表/功能与Dashboard捆绑在一起,如果我们不能修改,使用1有什么意义?因为已经有太多了。Thx作为回复,我尝试了这个,但它有局限性id列,我在上面的例子中传递的只是一个例子,我的意思是它显示为id应该像这样应用,他们的方式你做的很好,你拿,一些列名,拿它的html值,并把它分配给“”,限制是我不想将其作为列val传递。那么,您想如何传递它?如果要从数据数组中为该行分配ID,则需要某种方法来识别该行。“我想为创建的每一行的tr分配ID值”这就是我引用的内容,正如前面提到的,我感谢您的解决方案,但数据数组中的ID是以某种方式发送的,以便可以将其分配给tr的ID,我想我们都知道,我们通常不会在列中显示ID,因为它可能来自DB,如果你稍微修改一下,我肯定会把你的问题标记为true。是的,我可以试试。啊,这里还有一个问题,google表是可排序的,所以当我对列排序时,删除的字段会再次显示。试试看,你就会知道我指的是什么。