Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在google dashboard表中为TR赋值_Javascript_Jquery_Google Visualization_Google Datatable - Fatal编程技术网

Javascript 如何在google dashboard表中为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'], [

我正在使用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'],
      ['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表是可排序的,所以当我对列排序时,删除的字段会再次显示。试试看,你就会知道我指的是什么。