传递多个值
Passing Multiple Values
我有一个可视化 table,它在 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];
我有点难以理解我可能需要改变的地方(仍在学习)。感谢任何帮助或指导!
建议对所有文件确认一次
然后循环选择以存档每个文档
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([]);
}
});
});
我有一个可视化 table,它在 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];
我有点难以理解我可能需要改变的地方(仍在学习)。感谢任何帮助或指导!
建议对所有文件确认一次
然后循环选择以存档每个文档
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([]);
}
});
});