Google visualization 传递多个值

Google visualization 传递多个值,google-visualization,eventhandler,Google Visualization,Eventhandler,我有一个可视化表,在select上有一个事件侦听器 需求:我希望用户能够删除谷歌硬盘上的文档,而不必离开网页 设置:我添加了一个按钮,这样当单击时,我会得到一个包含该值的确认警报框。单击OK后,它将使用事件处理程序从客户端运行脚本。这很好用 问题是:我可以一次移动一个文档,但是如果我需要移动20多个文档,那么一行接一行地单击就会变得非常乏味。是否可以将多个值传递给successhandler google.visualization.events.addListener(archiveCha

我有一个可视化表,在select上有一个事件侦听器

需求:我希望用户能够删除谷歌硬盘上的文档,而不必离开网页

设置:我添加了一个按钮,这样当单击时,我会得到一个包含该值的确认警报框。单击OK后,它将使用事件处理程序从客户端运行脚本。这很好用

问题是:我可以一次移动一个文档,但是如果我需要移动20多个文档,那么一行接一行地单击就会变得非常乏味。是否可以将多个值传递给successhandler

  google.visualization.events.addListener(archiveChart.getChart(), 'select', function () {        

        $("#docArchive").on("click", function() {

            var selection = archiveChart.getChart().getSelection();
            var dt = archiveChart.getDataTable();                
             if (selection.length > 0) {
              var item = selection[0];
              var docurl = dt.getValue(item.row, 2);
              var docname = dt.getValue(item.row, 1);
              var folder = dt.getValue(item.row, 4);

            if(confirm("Are you sure you want to archive " + docname + "?") == true) {
                  archiveChart.getChart().setSelection([]);
                 return google.script.run.withSuccessHandler(onSuccessArchive).withFailureHandler(function(err) {
                     alert(err);
                   }).archiveDoc(docurl,folder);
                } else {
                  archiveChart.getChart().setSelection([]);
                }
           }}); 
      })
我觉得我可能需要补充一下:

for (var i = 0; i < selection.length; i++) {
                var item = selection[i];

我正在努力理解我可能需要改变什么,但仍在学习中。感谢您的帮助和指导

建议对所有文档确认一次

然后循环选择以归档每个文档

google.visualization.events.addListener(archiveChart.getChart(), 'select', function () {
  $("#docArchive").on("click", function() {
    var selection = archiveChart.getChart().getSelection();
    var dt = archiveChart.getDataTable();
    var docNames = selection.map(function (item) {
      return dt.getValue(item.row, 1);
    }).join('\n');
    if (selection.length > 0) {
      if(confirm("Are you sure you want to archive the following document(s)?\n" + docNames) == true) {
        for (var i = 0; i < selection.length; i++) {
          var item = selection[i];
          var docurl = dt.getValue(item.row, 2);
          var docname = dt.getValue(item.row, 1);
          var folder = dt.getValue(item.row, 4);

          return google.script.run.withSuccessHandler(onSuccessArchive).withFailureHandler(function(err) {
            alert(err);
          }).archiveDoc(docurl, folder);
        }
      }
      archiveChart.getChart().setSelection([]);
    }
  });
});

建议对所有文件确认一次

然后循环选择以归档每个文档

google.visualization.events.addListener(archiveChart.getChart(), 'select', function () {
  $("#docArchive").on("click", function() {
    var selection = archiveChart.getChart().getSelection();
    var dt = archiveChart.getDataTable();
    var docNames = selection.map(function (item) {
      return dt.getValue(item.row, 1);
    }).join('\n');
    if (selection.length > 0) {
      if(confirm("Are you sure you want to archive the following document(s)?\n" + docNames) == true) {
        for (var i = 0; i < selection.length; i++) {
          var item = selection[i];
          var docurl = dt.getValue(item.row, 2);
          var docname = dt.getValue(item.row, 1);
          var folder = dt.getValue(item.row, 4);

          return google.script.run.withSuccessHandler(onSuccessArchive).withFailureHandler(function(err) {
            alert(err);
          }).archiveDoc(docurl, folder);
        }
      }
      archiveChart.getChart().setSelection([]);
    }
  });
});

表格图表支持多种选择,按照您的建议添加for循环应该可以……因此,当我添加循环时,警报框中仍然只有一个文档名称。如果单击“取消”,警报框会要求我进行每个选择,但如果单击“确定”,它只执行一个文档的脚本。表格图表支持多个选择,可以按照您的建议添加for循环……因此,当我添加循环时,警报框中仍然只有一个文档名称。如果我单击“取消”,警报框会询问我每个选择,但如果我单击“确定”,它只执行一个文档的脚本。成功了!我现在可以看到警报框中的所有选择。我现在只需要调整移动文件的脚本,以便移动所有文件而不是第一个选择。非常感谢你!成功了!我现在可以看到警报框中的所有选择。我现在只需要调整移动文件的脚本,以便移动所有文件而不是第一个选择。非常感谢你!