0

在 Google 协作平台中,我试图添加一个由文本框和提交按钮组成的简短表单,作为 html 表格内的一行中的一个单元格。表格中每一行的表格副本。我正在尝试为每个表行收集输入数据。

HTML 文件:

<html>
  ...
  function showForm(){ // https://developers.google.com/apps-script/gui_builder#including
    var app=UiApp.createApplication();
    app.add(app.loadComponent("myGui"));
    return app;
  }
  ...
  <table><tr><td><?=showForm()?></td></tr></table>
  ...
</html>

然后,我使用 HtmlService.createTemplateFromFile() 方法从我的 .gs 文件中的 doGet() 函数调用 .html 文件。

表格正确呈现,除了我希望表单出现的地方,我得到的是文本/字符串“UiApplication”而不是文本框+提交按钮组合。

我在正确的轨道上吗?请帮忙。

4

1 回答 1

0

这是错误的轨道。

您不能混合和匹配来自HtmlServiceUiApp的组件。GUI Builder 是一个打包的UiApp组件。

只需坚持使用 FlexTable 并使用您的构建器组件填充表格单元格。但不要忘记设置前缀:

var flextab = app.createFlexTable();
for (row=0; ...)
  for (col=0; ...)
    flextab.setWidget(row, col, app.loadComponent("myGui", {"prefix": "row"+row+"col"+col});

顺便说一句 - 您的网络应用程序中只能有一个UiInstance。只调用UiApp.createApplication()一次。如果您以后需要UiInstance,您可以随时使用UiApp.getActiveApplication().

于 2012-09-15T09:39:37.107 回答