0

Google サイトで、テキスト ボックスと送信ボタンで構成される短いフォームを、html テーブル内の行のセルとして追加しようとしています。表の行ごとに 1 つのフォームのコピー。各テーブル行の入力データを収集しようとしています。

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 ビルダーはパッケージ化された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は 1 つだけです。電話UiApp.createApplication()は一度だけ。後でUiInstanceが必要になった場合は、 でいつでも見つけることができますUiApp.getActiveApplication()

于 2012-09-15T09:39:37.107 に答える