我有一个可视化表,在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];
我正在努力了解我可能需要改变的东西(仍然在学习)。任何帮助或指导表示赞赏!
答案 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([]);
}
});
});