0

GUI でアクティブな UI ビルドからスプレッドシートにデータを保存しようとしています。しかし、UI のテキスト ボックスから文字列値を取得する方法がわかりません。これは私がやろうとしていることです:

function saveChanges() {  
  var Text;
  var Location;
  var app = UiApp.getActiveApplication();

  Text = app.getElementById('CompanyLegalNameTextBox').getText();
  Location = "C3";
  SpreadsheetApp.getActiveSheet().getRange('Location').setValue('Text');  
}

取得エラー: TypeError: オブジェクト Generic に関数 getText が見つかりません。

事前にご協力いただきありがとうございます。

4

2 に答える 2

1

で気になる特定の詳細は、get 操作をサポートしないをgetElementById返すという事実です。GenericWidget

もう 1 つの紛らわしい側面は、ID と名前です。コールバック関数へのパラメータは名前をgetElementById使用して渡され、ID を使用します (名前が示すように)。簡単にするために、通常はウィジェットの名前と ID を同時に同じものに設定します。次に、ウィジェットへの参照をコールバックに追加することで渡すことができますaddCallbackElement

   ///snippet
   var textBox = app.createTextBox()
                   .setId('CompanyLegalNameTextBox')
                   .setName('CompanyLegalNameTextBox');

  app.add(textBox);
  var handler = app.createServerHandler('saveChanges');
  handler.addCallbackElement(textBox);
  button.addClickHandler(handler); //button defined elsewhere

コールバック コードは次のようになります。「e」パラメータに注目してください。

  function saveChanges(e) {  
    var textValue = e.parameter.CompanyLegalNameTextBox;
    ///snippet 
  }
于 2012-11-20T16:54:24.137 に答える
0

これについては、UI アプリのドキュメントに詳しく説明されています。質問する前に読んでください。

于 2012-11-20T13:09:23.337 に答える