0

我是一名 Java 开发人员,但我使用 Google 协作平台为一个非盈利组织创建了一个小型站点。我有一个表格,我想有点动态,Google Apps 脚本似乎是一个可行的选择。就像学习新技术时经常发生的那样,我从教程/文档中复制并粘贴了下面的代码。然后我发布了它,并将脚本小部件插入到站点上的一个页面中并保存了该页面。当我重新加载页面时,小部件的“占位符”就在那里,但什么也没有发生——没有按钮,没有面板,什么都没有。当我从脚本编辑器运行它时,结果相同。我确定我遗漏了一些明显的东西,但我根本无法让 UI 呈现。一点方向将不胜感激。提前致谢!

function doGet(e) {
  Logger.log("Executing the doGet() method . . .");

  var app = UiApp.createApplication();
  var aPanelRoot = app.createVerticalPanel();

  var button = app.createButton('Click Me');
  aPanelRoot.add(button);

  var label = app.createLabel('The button was clicked.');
  label.setId('statusLabel');
  aPanelRoot.add(label);

  var handler = app.createServerHandler('myClickHandler');
  handler.addCallbackElement(label);
  button.addClickHandler(handler);

  aPanelRoot.setVisible(true);
  return app;
}

function myClickHandler(e) {
  var app = UiApp.getActiveApplication();

  var label = app.getElementById('statusLabel');
  label.setVisible(true);

  //app.close();
  return app;
}
4

1 回答 1

2

看来您只是忘记在函数中添加aPanelRoot到应用程序doGet()

app.add(aPanelRoot)

另外:默认情况下,所有小部件都是可见的,因此您可以删除所有setVisible(true)语句,因为它们只有在您将它们设置到false其他地方时才是必需的......

如果我可以添加最后一条评论,那么选择父小部件通常是一个好主意,callbackElement这样当您开始拥有大量元素时就不会忘记添加元素(所有子小部件都自动包含在父小部件中)。

于 2012-08-08T23:48:20.740 回答