传递多个值

时间:2017-09-29 20:45:33

标签: google-visualization eventhandler

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

需求:我希望用户能够在不离开网页的情况下删除Google云端硬盘上的文档

设置:我添加了一个按钮,以便在点击时,我会收到包含该值的确认提醒框。单击“确定”后,它将使用事件处理程序从客户端运行脚本。这非常有效!

问题:我可以一次移动一个文档,但如果我需要移动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];

我正在努力了解我可能需要改变的东西(仍然在学习)。任何帮助或指导表示赞赏!

1 个答案:

答案 0 :(得分:0)

建议确认一次,所有文件

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

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([]);
    }
  });
});