Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 是否可以让一个小部件的客户端触发器触发另一个小部件的服务器端触发器_Google Apps Script - Fatal编程技术网

Google apps script 是否可以让一个小部件的客户端触发器触发另一个小部件的服务器端触发器

Google apps script 是否可以让一个小部件的客户端触发器触发另一个小部件的服务器端触发器,google-apps-script,Google Apps Script,我在值更改事件上有一个带有服务器端触发器的复选框。无论何时我选中/取消选中该框,我都可以在日志中看到往返行程 我配置了一个按钮,当我单击该按钮时,它会选中该框。它检查得很好,但我希望值更改触发器能够调用。事实并非如此 是否有文件证明这不起作用,但我找不到?我设置错了吗?虫子 function doGet() { var app = UiApp.createApplication(); var serverHandler = app.createServerHandler('myClick

我在值更改事件上有一个带有服务器端触发器的复选框。无论何时我选中/取消选中该框,我都可以在日志中看到往返行程

我配置了一个按钮,当我单击该按钮时,它会选中该框。它检查得很好,但我希望值更改触发器能够调用。事实并非如此

是否有文件证明这不起作用,但我找不到?我设置错了吗?虫子

function doGet() {
  var app = UiApp.createApplication();
  var serverHandler = app.createServerHandler('myClickHandler');
  var cb = app.createCheckBox().addValueChangeHandler(serverHandler).setName('box');
  var button = app.createButton('Press me');
  var clientHandler = app.createClientHandler().forTargets(cb).setValue(true);
  button.addClickHandler(clientHandler);
  app.add(button).add(cb);
  return app;
}

function myClickHandler(e) {
  Logger.log(e);
  return UiApp.getActiveApplication();
}
谢谢。

根据:

设置是否应选中该复选框。不触发任何事件 如果值因此调用而更改


您需要在按钮中添加一个服务器处理程序以实现所需功能。

正确。但是,我调用的setValue实际上在ClientHandler上,而不是复选框上。我不知道实际的实现是什么,但如果在内心深处,ClientHandler安排调用cb.setValuetrue,我也不会感到惊讶。但是,复选框确实具有setValuetrue、true选项,该选项将触发事件。我希望ClientHandler能够调用该方法。如果有一种方法能在ClientHandler中实现这一点。我希望避免编写多个服务器处理程序来完成相同的任务。