2012-09-14 67 views
0

在Google协作平台中,我试图在html表格的行中添加一个由文本框和提交按钮组成的简短表单。表格中每一行的表格的一个副本。我正在尝试为每个表格行收集输入数据。获取UI表单在GAS中的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()方法调用从我的doGet()函数.html文件在我.GS文件。

表格正确呈现,除非我希望表单出现,否则我将获取文本/字符串“UiApplication”而不是文本框+提交按钮组合。

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

回答

0

这是错误的轨道。

不能从HtmlService了UiApp混合&匹配组件。 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}); 

顺便说一句 - 你只能在你的web应用程序一个UiInstance。请致电UiApp.createApplication()一次。如果您稍后需要UiInstance,则始终可以通过UiApp.getActiveApplication()找到它。

+0

非常感谢。 createFlexTable()在正确的方向上绝对是有用的一点! =] – Mowzer