使用带模式对话框的服务器处理程序

时间:2014-06-12 17:06:56

标签: google-apps-script

我正在使用showModalDialog在我刚刚创建的应用程序中传递一个用户界面。我还设置了一个带有服务器处理程序的按钮。当调用服务器处理程序函数时,我尝试使用" UiApp.getActiveApplication()"再次获取应用程序。隐藏一些元素并显示一些不同的元素,然而,这些更改并未反映出来。在方法结束时,我试图关闭应用程序,并显示一个新的模态对话框,我试图返回应用程序,我试图什么都不做,似乎没有任何工作。

我无法发布我的整个代码,因为它很长,因此我制作了一个非常简单的版本,可以解决问题。当我在testHandler()中放入一些日志语句时,它证明代码正在运行。

function test() {
  var app = UiApp.createApplication().setHeight(700).setWidth(1500);
  var label = app.createLabel("Hi").setId("label");
  var label2 = app.createLabel("GoodBye").setId("label2").setVisible(false);
  var button = app.createButton("Press Me").setId("button");
  app.add(label);
  app.add(label2);
  app.add(button);

  var testHandler = app.createServerHandler('testHandler');
  testHandler.addCallbackElement(label);
  testHandler.addCallbackElement(label2);
  button.addClickHandler(testHandler);

  SpreadsheetApp.getUi().showModalDialog(app, 'Test');
}

function testHandler() {
  var app = UiApp.getActiveApplication();
  app.getElementById('label').setVisible(false);
  app.getElementById('label2').setVisible(true);

  // Not sure what to do now
}

提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

返回app; //你不知道该怎么做